Предлагаем вашему вниманию скрипт, который собирает данные с заданного сайта,
а именно: внутренние и внешние ссылки, и мета тэги — title, description и keywords.

В результате работы скрипта по заданному пути появляются csv файлы: inner_links.csv с внутренними ссылками,
ext_links.csv с внешними и meta_tags.csv с мета тэгами.

Формат csv файлов с ссылками:

url страницы;ссылка
http://x-scripts.com/;http://www.freecsstemplates.org/
http://x-scripts.com/;http://www.humanemulator.info/
http://x-scripts.com/;mailto:order@x-scripts.com

Формат csv файла с meta tags:
url страницы;заголовок страницы;meta tag description; meta tag keywords
http://x-scripts.com/index.php;X-Scripts всё про скрипты XHE и их применение | X-Scripts.com;Описание сайта и разделов представленных на X-Scripts.com;XHE скрипты, написание скриптов XHE, примеры скриптов под хуман, примеры скриптов, скрипты для XWeb Human Emulator бесплатно
http://x-scripts.com/scripts.php;Примеры скриптов для XHE | X-Scripts.com; Примеры скриптов для XHE на X-Scripts.com. Скачай себе скрипт для Xweb Human Emulator;примеры скриптов скачать, скачать скрипты, скрипты xhe скачать, примеры xhe скачать
http://x-scripts.com/scripts/catalogs.php;Скрипт XHE сборщик каталогов | X-Scripts.com;Скрипт XHE сборщик каталогов на .com.

мы использовали функцию $app->show_free_dlg, которая показывает диалог с настройками

мы использовали функцию $app->show_free_dlg, которая показывает диалог с настройками

На этот раз для настроек скрипта мы использовали функцию $app->show_free_dlg, которая показывает диалог с настройками. Для постройки этого диалога функция использует xml файл. Таким образом изменяя xml файл можно создать любой диалог. В результате своей работы функция возвращает строку с настройками. Мы эту строку разбираем и получаем настройки, которые ввёл пользователь в диалог.
В нашем случае пользователь вводит анализируемый сайт, папку куда складывать результаты, задаёт что именно собирать и фильтры какие страницы не обрабатывать.

Пример XML файла нашего диалога настроек:


	













Вызов диалога настроек в скрипте:

// покажем диалог настроек скрипта
$str_settings=$app->show_free_dlg(file_get_contents("settings.xml"),"false","
"); // добавим главную страницу в массив $obj_settings=new ScriptSettings(); if(!$obj_settings->set(trim($str_settings))) { debug_mess("не заданы настройки скрипта!"); debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
"); $app->quit(); }

Для обработки вводимых пользователем настроек мы добавили специальный класс ScriptSettings:

",$str_sets);
		// сайт 
		$this->str_site  = trim($a_sets[0]);
		// путь к папке с результатами
		$this->str_res_folder = trim($a_sets[1]); 
		
		// собирать ли внешние ссылки
		$this->b_ext_links =trim($a_sets[2])==1;
		// собирать ли внутренние ссылки
		$this->b_inn_links = trim($a_sets[3])==1;
		// собирать ли тэги
		$this->b_meta_tags = trim($a_sets[4])==1;
		// разобрать фильтры в массив
      if($a_sets[5]!="")
		     $this->a_filters=explode(",",$a_sets[5]);
      else
           $this->a_filters="";
		
		return true;
	}
  // показать настройки в панели отладки
  function show()
  {
      // сайт 
		echo "анализируем сайт : $this->str_site
"; // путь к папке с результатами echo "путь к папке с результатами: $this->str_res_folder
"; // собирать ли внешние ссылки if($this->b_ext_links) echo "собирать внешние ссылки
"; // собирать ли внутренние ссылки if($this->b_inn_links) echo "собирать внутренние ссылки
"; // собирать ли тэги if($this->b_meta_tags) echo "собирать тэги
"; // разобрать фильтры в массив echo " фильтры:
"; for($ii=0;$iia_filters);$ii++) echo $this->a_filters[$ii]."
"; return true; } } ?>

Скрипт можно легко модифицировать под сбор любой нужной вам информации, например можно собирать email-ы, телефоны, факсы, адреса, цены и т.д.
Можно сделать что б он брал сайты из заданного файла или собирал эти сайты по ключевому
запросу из поисковых результатов гуль или яндекс или любой другой поисковой машины.

Сам скрипт:

show_free_dlg(file_get_contents("settings.xml"),"false","
"); // добавим главную страницу в массив $obj_settings=new ScriptSettings(); if(!$obj_settings->set(trim($str_settings))) { debug_mess("не заданы настройки скрипта!"); debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
"); $app->quit(); } // покажем настройки в окне отладки //$obj_settings->show(); // чистим предыдущие данные if($obj_settings->b_ext_links) $file_os->delete($obj_settings->str_res_folder."ext_links.csv"); if($obj_settings->b_inn_links) $file_os->delete($obj_settings->str_res_folder."inner_links.csv"); if($obj_settings->b_meta_tags) $file_os->delete($obj_settings->str_res_folder."meta_tags.csv"); // добавим главную в массив $a_links[]=$obj_settings->str_site; // чистим данные // собираем и проверяем for($k=0;$knavigate($pg); // проверяем страницы которые не нужно обрабатывать // проверить 404 страницу $bd=$webpage->get_body(); if(strpos($bd,"Error 404:")) continue; // проверить index of if(strpos($bd,"Index of ")) continue; // получить meta tags текущей страницы if($obj_settings->b_meta_tags) get_meta($pg,$obj_settings); // получим все href-ы на странице $hrefs=$anchor->get_all_hrefs(); // преобразуем в массив $hrefs=explode("
",$hrefs); // пройтись по всем hrefs и удалим лишнее for($ii=0; $iistr_site)===false && $obj_settings->b_ext_links) { $textfile->add_string_to_file($obj_settings->str_res_folder."ext_links.csv",$pg.";".$pg_href."\n",60) ; } else if($obj_settings->b_inn_links) // внутренняя ссылка { // если ещё не проверяли проверим // добавим проверяемую страницу if(!is_a_exists($pg_href)) { $a_links[]=$pg_href; $textfile->add_string_to_file($obj_settings->str_res_folder."inner_links.csv",$pg.";".$pg_href."\n",60) ; } } } } // убираем дубликаты из файлов if($obj_settings->b_ext_links) $textfile->dedupe($obj_settings->str_res_folder."ext_links.csv",$obj_settings->str_res_folder."ext_links.csv",60); if($obj_settings->b_inn_links) $textfile->dedupe($obj_settings->str_res_folder."inner_links.csv",$obj_settings->str_res_folder."inner_links.csv",60); if($obj_settings->b_meta_tags) $textfile->dedupe($obj_settings->str_res_folder."meta_tags.csv",$obj_settings->str_res_folder."meta_tags.csv",60); debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
"); // Quit $app->quit(); ?>

Скрипт написан 07.09.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 10.09.2012 скрипт был рабочий.

Этот скрипт работает в Demo версии программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo

скачать скрипт

Добавить комментарий

*
*

Необходимые поля отмечены*