X-Scripts

Power by humanemulator

НАШИ КОНТАКТЫ:
ICQ My ICQ 625657402: 625657402
Наш скайп: igor_sev2
Email : order@x-scripts.com

Сообщество программистов и манимейкеров


Human Emulator Free!
Бесплатная версия программы Human Emulator!
Скачать программу можно тут!

Скрипт Human Emulator сбора информации с сайта.

Предлагаем вашему вниманию скрипт, который собирает данные с заданного сайта, а именно: внутренние и внешние ссылки, и мета тэги - 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.

Внешний вид диалога настроек (free_dlg)

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
















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

<freeDlg x="120" y="180" width="300" height="300" value="Настройки для анализа сайта" x_ok="140" y_ok="245" x_cancel="215" y_cancel="245">
	
<LABEL x="5" y="17" width="100" height="20" value="Сайт для анализа:" ></LABEL>
<EDIT x="120" y="10" width="170" height="20" value="http://Введите адрес сайта" ></EDIT>


<LABEL x="5" y="47" width="130" height="20" value="Путь к результатам:" ></LABEL>
<EDIT x="120" y="40" width="170" height="20" value="./res/" ></EDIT>

<LABEL x="5" y="75" width="200" height="20" value="Собирать:" ></LABEL>
<CHECKBOX x="5" y="100" width="200" height="20" value="Внешние ссылки" ></CHECKBOX>
<CHECKBOX x="5" y="125" width="200" height="20" value="Внутренние ссылки" ></CHECKBOX>
<CHECKBOX x="5" y="150" width="200" height="20" value="Мета тэги (title, description, keyword)"></CHECKBOX>
<LABEL x="5" y="185" width="290" height="20" value="Фильтры на поиск (вводить через ,): " ></LABEL>
<EDIT x="5" y="210" width="285" height="20" value="/download/,/forum/,/gallery/,/images/,.jpg,.rar,.png,.js" ></EDIT>

</freeDlg>

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


// покажем диалог настроек скрипта
$str_settings=$app->show_free_dlg(file_get_contents("settings.xml"),"false","<br>");

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

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

<?php

// ссылка на страницу и информация по ней
class ScriptSettings
{
	// страница
	var $str_site;
	// папка с результатами
	var $str_res_folder; 
	// собирать внешние ссылки
	var $b_ext_links;
	// собирать внутренние ссылки
	var $b_inn_links;
	// собирать мета тэги
	var $b_meta_tags;
	// массив фильтров
	var $a_filters;
	
	
	// задать настройки     
	function set($str_sets)
	{
      if($str_sets=="Cancel")
        return false;

		// преобразуем в массив
		$a_sets=explode("<br>",$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<br>";
		// путь к папке с результатами
		echo "путь к папке с результатами: $this->str_res_folder<br>"; 
		
      // собирать ли внешние ссылки
      if($this->b_ext_links)
		    echo "собирать внешние ссылки<br>"; 
		
      // собирать ли внутренние ссылки
      if($this->b_inn_links)
	   	echo "собирать внутренние ссылки<br>"; 

		// собирать ли тэги
      if($this->b_meta_tags)
		   echo "собирать тэги<br>"; 

		// разобрать фильтры в массив
		echo " фильтры: <br>"; 
      for($ii=0;$ii<count($this->a_filters);$ii++)
          echo $this->a_filters[$ii]."<br>";
		
      return true;      
  }
}
?>

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

<?php
/* ** 
//  Наш сайт http://x-scripts.com
//  Скрипт сбора информации о сайте.
//  по любым вопросам касающимся скрипта 
//  можно написать нам на мыло order@x-scripts.com
** */
$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");

// ////////// настройки скрипта///////////////////

// режим отладки
$dbg=true;

// /////////////////// дополнительные модули /////////////////////
// настройки 
require_once("settings.php");
// функции 
require_once("functions.php");

// ///////////////////// script /////////////////////////////////////////////////////////
debug_mess(date("\[ m.d.y H:i:s\] ")." скрипт запустили");

// покажем диалог настроек скрипта
$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(); } // покажем настройки в окне отладки //$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;$k<count($a_links);$k++) { // получаем страницу $pg=$a_links[$k]; // проверяем фильтры if(!check_filter($pg, $obj_settings)) continue; // переходим на страницу $browser->navigate($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

скачать скрипт
Количество скачиваний: 2600

<< Другие скрипты