Работа с XML документами в скриптах Human Emulator

Очень часто при написании скриптов мы сталкиваемся с использованием XML документов
и довольно регулярно наши клиенты интересуются как работать с XML в скриптах Human Emulator.
В связи с этим мы решили написать вводную статью на эту тему.
Более подробно про работу с XML Вы можете найти в мануалах по пхп, так как работа с XML в скриптах на php Хумана
полностью аналогична работе с XML в PHP.

Предположим у нас стоит задача вытянуть какие то данные из интернета в виде XML документа.
Для примера спарсим названия и описания фильмов с сайта kinogo.net в xml документ следующего формата:

Итак, для начала создаём тело скрипта:

Теперь создаём XML документ :

Разберем строку создания XML файла («шапка» любого XML файла)

<?xml version=\»1.0\ — версия XML (стандартная)
encoding=\»WINDOWS-1251\»?> — кодировка (обязательно указывать) , в нашем случае кодировка будет WINDOWS-1251

далее придуманные нами (для удобства) теги и название файла в теле документа с переносом строк
«\r\n<data>$docname\r\n</data>\r\n»

Чтение XML (read_xml.php).

Теперь предположим, что собранный нами xml документ нужно где то опубликовать. Для этого его нам нужно сначала прочитать.
Для того, чтобы считать XML документ можно использовать функции класса SimpleXMLElement.

При этом доступ к данным полностью соответствует названию тэгов в xml документе.
Так, к примеру, что бы получить доступ к тэгу item мы используем конструкцию $ads->item,
а для того чтобы получить доступ к тэгу film $ads->item->film

Примечание:
иногда промежуточный тег может быть написан через дефис, в этом случае используйте {}
пример:

подробно о XML

Скрипты написаны в XHE 4.6.45 MT.

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

Установка сервера БД MySQL на компьютер пользователя.

Все больше наших клиентов задают вопросы по использованию функционала баз данных MySQL в скриптах Human Emulator.
По большому счету алгоритм работы и функционал, точно такой же как и в PHP.
Поэтому все ответы на вопросы по работе с базами данных MySQL в Human Emulator Вы можете найти в мануалах PHP.
Но не смотря на это мы решили написать серию вводных статей на эту тему.
Предлагаем Вашему вниманию первую из них.

Прежде чем начать работать с MySQL это сервер БД естественно необходимо установить и настроить чем мы и займемся в этой статье.

Итак, шаг 1: идем на официальный сайт mysql.com и скачиваем дистрибутив БД (рис.1)

 

скачиваем дистрибутив БД MySql

скачиваем дистрибутив БД MySql

 

Рис.1. Выбираем последнюю стабильную версию (в нашем случае это 5.5.38) и 64-х разрядный установщик Microsoft для Win7.

Шаг 2: Устанавливаем сервер MySQL (рис.2 — 4)

 

начало установки

начало установки

 

выбираем первый пункт

выбираем первый пункт

 

установка закончена, запускаем программу

установка закончена, запускаем программу

 

Рис.4. Процесс установки сервера БД не сложный и в основном сводится к последовательному нажатию клавиши «Next» в очередном появившемся окне.

Шаг 3: Настройка сервера БД (рис.5 — 9).

 

Выбираем Пользовательскую машину.

Выбираем Пользовательскую машину.

 

Рис.5: Выбираем Пользовательскую машину.

 

Мультифункциональную БД.

Мультифункциональную БД

 

Рис.6: Мультифункциональную БД.

 

Оставляем стандартный порт.

Оставляем стандартный порт

 

Рис.7: Оставляем стандартный порт 3306.

 

Кодировку БД по умолчанию ставим UTF-8

Кодировку БД по умолчанию ставим UTF-8

 

Рис.8: Кодировку БД по умолчанию ставим UTF-8.

 

Придумываем и вводим свой пароль для входа в БД

Придумываем и вводим свой пароль для входа в БД

 

Рис.9: Придумываем и вводим свой пароль для входа в БД. Клавиша Next.
В принципе на этом установка и настройка БД MySQL завершена.

Шаг 4: Проверка работоспособности БД (рис.10 — 14).

 

Идем в файл конфигурации(my.ini)-запоминаем в какую папку по умолчанию MySQL будет создавать БД.

Идем в файл конфигурации(my.ini)-запоминаем в какую папку по умолчанию MySQL будет создавать БД

 

Рис.10: Идем в файл конфигурации (my.ini) — запоминаем в какую папку по умолчанию MySQL будет создавать БД.

 

Запускаем командную строку (cmd). Запускаем MySQL (net start mysql), служба может быть уже запущена.

Запускаем командную строку (cmd). Запускаем MySQL (net start mysql), служба может быть уже запущена.

 

Рис.11: Запускаем командную строку (cmd). Запускаем MySQL (net start mysql), служба может быть уже запущена

 

Заходим в консоль сервера (вводя выделенную команду где вместо -uroot -ppass@word1 вводите -u(свой логин) -p(свой пароль)).

Заходим в консоль сервера (вводя выделенную команду где вместо -uroot -ppass@word1 вводите -u(свой логин) -p(свой пароль)).

 

Рис.12: Заходим в консоль сервера (вводя выделенную команду где вместо -uroot -ppass@word1 вводите -u(свой логин) -p(свой пароль)).

 

Пытаемся создать БД вводя команду CREATE DATABASE mydb1

Пытаемся создать БД вводя команду CREATE DATABASE mydb1

 

Рис.13: Пытаемся создать БД вводя команду CREATE DATABASE mydb1.

 

Идем в папку в которую MySQL по умолчанию сохраняет БД и проверяем появилась ли в ней подпапка с таким же названием

Идем в папку в которую MySQL по умолчанию сохраняет БД и проверяем появилась ли в ней подпапка с таким же названием

 

Рис.14: Идем в папку в которую MySQL по умолчанию сохраняет БД и проверяем появилась ли в ней подпапка с таким же названием (mydb1).

 

В нашем случае папка появилась - этот факт свидетельствует о успешном создании БД.

В нашем случае папка появилась — этот факт свидетельствует о успешном создании БД.

 

В нашем случае папка появилась — этот факт свидетельствует о успешном создании БД.

Анонимность в сети с помощью Human Emulator

С каждым днем все чаще у пользователей нашей программы возникают вопросы об анонимности работы в сети и как следствие
по подмене данных браузера, компьютера и различных параметров, которые передаются, отслеживаются и мониторятся
различными поисковыми системами, например, такими как Google, Яndex и прочими. Как правило для сбора информации и
других ресурсов приходится использовать многочисленные запросы в связи с чем, системы безопасности видят одни и те же
параметры либо часть их, с которыми вы осуществляете поисковые запросы и в дальнейшем можно получить элементарный бан
по ip адресу либо другие ограничения связанные с вашими действиями, чтоб затруднить вашу работу. В свете этих событий,
мы попытаемся в этой статье наглядно рассказать о том, как работать в Human Emulator максимально анонимно.

Для начала нужно сказать о том, что браузер передает сайту очень много различных параметров. Начиная
от своих названия и версии, установленных плагинов, версии флэша, разрешения экрана, языка системы и операционной
системы и заканчивая вашими ip, dns и даже цепочкой прокси (если есть). Правда всё это зависит от того интернет ресурса
на который вы заходите. Некоторые сайты просто запрашивают заголовки и куки, а такие интернет гиганты как Google
запрашивают огромное количество различных параметров, вплоть до мак-адреса вашей сетевой карты. Поэтому к анонимности
под каждый ресурс нужно подходить ситуативно.

Если вы хотите оставаться анонимным для Google или Yandex вам придётся потрудиться значительно больше нежели для вашего городского форума.

Какие параметры браузера мы можем менять, используя Human Emulator?

Подмена IP. Для решения этого вопроса в программе есть возможность использовать прокси. Сами прокси
могут быть простыми проксями, элитными, анонимными, socks4 и socks5. О том как это работает на нашем сайте вы можете найти
статью Использование прокси-серверов в работе Human Emulator.
Что касается socks4 и socks5. Для socks4 вы можете использовать следующую запись

более детально об этом можно найти в описании функции
$browser->enable_proxy.
Что касается чистых socks5, то они не могут использоваться напрямую в Human Emulator, так как программа
сделана на основе Internet Explorer, а в нём нет возможности работать с socks5.
Поэтому одним из пользователей Human Emulator был написан php класс, который сделал возможным работать
Хуману через сокс5. Этот класс вы можете найти на форуме программы — тема: SOCKS5.
Так же Human Emulator может работать со сторонними прокси-серверами и подобными программами, например с Tor. О том как настроить
хуман под тор вы можете прочитать у нас на сайте в статье
Настройка Human Emulator для работы под Tor.

Надо понимать, что если вы ничего кроме ip не меняете, то фактически вы регистрируете один и тот же комп с разных ip адресов,
и админ это очень хорошо видит. Например, зашли вы с ip Италии на сайт, но у вас временная зона в компе — Мск,
язык — русский, dns — российские, Екатеринбург, провайдер — Ланком, ОС — windows 7, разрешение экрана 1240 x 760
точек и многое-многое другое. И теперь представьте, как админ офигивает, когда в статистике
регистраций в информации о пользователях, видит, что юзер с одними и теме же системными параметрами регистрируется с разных частей света.
Для большенства интернент-ресурсов толку с того, что вы ip поменяли — никакого.
Поэтому в Human Emulator есть различные инструменты для подмены тех или иных параметров браузера. Такие как
размер окна браузера, реальное разрешение монитора, user-agent строка, заголовки браузера, отключение и
включение различных настроек браузера, чистка куков, кэша и адресной строки браузера и т.д. Весь функционал
по работе с браузером можно найти в мануале для объекта browser.

Если вы хотите оставаться анонимным для Google, то Вам понадобится девственно чистая система
без установленного google chrome. Из этой системы не должно быть заходов в youtube, facebook или другие сервисы Google,
которые моментально метят ваш комп. Менять всё что только можно и по максимуму использовать в работе скрипта
объекты keyboard и mouse, которые эмулируют работу клавиатуры и мыши.
Для других сайтов Ваша анонимность может ограничиться чисткой куков, использованием прокси и изменением user-agent строки.

Запуск скриптов Human Emulator по расписанию

Очень часто наши клиенты интересуются можно ли настроить запуска скрипта по расписанию и как это сделать.
Мы решили написать по этому поводу статью, которая наглядно демонстрирует как это делается.

Для начало надо сказать, что ни каких сторонних инструментов для запуска скриптов в определенное время нам не понадобится,
так как разработчики позаботились об этом и встроили в программу инструмент «Расписание скриптов».
Этот инструмент Вы можете найти в Нижней панели, нажав на вкладку «Расписание скриптов» или если эта закладка у Вас закрыта,
то открыть её с помощью пункта меню «Скрипты->Расписание скриптов…». Кликнув по закладке «Расписание скриптов»
мы увидим панель «Расписание скриптов», после чего жмем на кнопку «Добавить».

Закладка Расписание скриптов

Закладка Расписание скриптов

Далее появится окно «Свойства задачи», в нем мы настраиваем расписание так как нам требуется. Можно настроить интервал раз в пять минут,
можно раз в год, а можно запуск несколько раз или бесконечно.

Выбираем тип расписания — интервал запуска скрипта.

Выбор типа расписание

Выбор типа расписание

Выбираем дату первого запуска скрипта.

Выбор даты старта

Выбор даты старта

Выбираем путь к скрипту, который нужно запускать

Выбор пути к скрипту

Выбор пути к скрипту

После выбора скрипта нажимаем кнопку OK

Добавить новую задачу в расписание скриптов

Добавить новую задачу в расписание скриптов

Наша задача появится в таблице задач

Новая задача в таблице расписания скриптов

Новая задача в таблице расписания скриптов

Таким образом Вы можете добавить столько скриптов в Расписание задач сколько Вам потребуется для ваших нужд.
Так же все задачи можно удалить, редактировать или деактивировать (временно приостановить выполнение этой задачи).
Если происходит одновременный запуск нескольких скриптов, то следующие скрипты ждут пока закончат работу предыдущие.
Если Вам нужно что бы следующие скрипты прерывали при старте уже запущенные Вы ставите галочку «Принудительно завершить выполняющийся скрипт»,
которая находится в нижнем левом углу панели «Расписания скриптов».

Так в несколько простых действий Вы можете легко настроить расписание скриптов под себя.
Расписание скриптов для каждого потока работает отдельно.

Работа с csv файлами в Human Emulator

Часто для работы скрипта требуется ввод каких то данных, например, для заполнения полей при подаче объявлений на доски,
заполнении виз или форм подачи заявок на кредиты и т.д. Эти данные можно брать из баз данных,
из текстовых файлов различного формата, со страниц вашего сайта, из почтовых ящиков.
Но одним из наиболее удобных форматов являются данные представленные в формате csv файлов.
Это файлы, каждая строка которых содержит данные для заполнения одной формы или объявления,
значения которых разделены ; и могут быть взять в кавычки — «.
К примеру вот строка из файла данных для нашего скрипта публикации объявлений на доске Slando:

Вот о том как работать с такими данными мы и расскажем в этой статье.

Итак, у нас есть файл data.csv в котором содержатся следующие данные:

Рассмотрим способы получения этих данных в скрипт.

Первый и самый примитивный способ это использование php функций file и explode. Ниже приведён пример скрипта,
который использует эти функции для разбора csv файла:

В результате работы скрипта в окне отладки мы увидим следующее:

Минус данного способа внутри данных нельзя использовать разделители. В нашем случае это «;» .

В php для работы с csv файлами есть функции fgetcsv и str_getcsv.

Функция fgetcsv читает строку из файла и разбирает данные CSV. Она похожа на функцию fgets(),
только дополнительно делает анализ строки на формат CSV и возвращает разобранные поля в виде массива.
Возвращает FALSE в случае ошибки или прочитав полностью файл.Пустая строка будет возвращена в виде массива,
содержащего один элемент null, ошибки в данном случае не будет.

Ниже приведём пример использования этой функции для файла data.csv:

str_getcsv — данная функция выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.
То есть она работает аналогично explode, но только конкретно для csv строк. Таким образом, эта функция будет корректно разбирать csv данные,
в том числе и с содержанием спецсимволов, например:

в результате работы explode будем иметь:

в результате работы функции str_getcsv

Пример скрипта с использованием str_getcsv:

В результате работы скрипта имеем:

Так же в интернете можно найти множество самописных классов php,
которые работают с файлами в csv формате и использовать их в скриптах для Human Emulator,
как впрочем любые классы написание на php.

Использование прокси в работе Human Emulator

Часто, по той или иной причине, в скрипте написанном под Human Emulator возникает
необходимость использования проксей (платных или фришных, с привязкой под IP или по
паролю — не суть важно).

Рассмотрим как корректно организовать такую работу. Во-первых нам нужен текстовый файл с проксями
в формате одна строка — один прокси. Пусть это будет «proxy.txt» в следующем формате — одна строка один прокси:

Объявляем переменную в скрипте $str_proxy_path — для указания пути к файлу с проксями:

и переменную

которой будем присваивать текущий прокси.

В начале скрипта — устанавливаем прокси:

Функция set_proxy() находится в файле functions.php, который инклюдится в начале текущего скрипта. Вот её код:

Еще один важный момент. Текущий прокси который мы используем в настоящий момент может просто «слететь».
В случае использования фришных проксей эта вероятность стремится к 100%. Поэтому при выполнении различного рода команд
в скрипте которые подразумевают переход по другому URL, например:

или

и тому подобных, необходимо в скрипте сразу после их выполнения добавить проверочный код, который будет отслеживать «истинность»
перехода на другую страницу. Например:

В условии

необходимо привязаться к какому-либо элементу , который гарантировано существует на искомой странице.

Вот собственно и все. Удачного использования.

При необходимости можно купить прокси.
Так же для проверки прокси под любой сайт вы можете использовать наш скрипт проверки прокси.

Настройка Human Emulator для работы под Tor-м

В этой статье мы расскажем Вам о том, как настроить Human Emulator работать под Tor-м.

Tor – это система, которая устанавливает анонимное сетевое соединение и как заявляют разработчики, которая защищена от прослушивания.
По факту Tor это анонимная сеть, состоящая из узлов(серверов) между которыми и проходят данные в зашифрованном виде и лишь
на последнем сервере они расшифровываются и попадают к целевому серверу в отрытом виде.
Помимо этого через определённый промежуток времени происходит смена цепочки серверов,
через которые идут данные и последним отдающим данные будет уже другой сервер.
Таким образом, анонимайзер тор позволяет скрывать от целевых ресурсов адрес отправителя,
а так же прятать от провайдера целевые адреса, то есть получать доступ к заблокированным им сетевым ресурсам.
Другими словами Tor позволяет прятать Ваш IP.

Для работы через сеть Tor нам понадобится две вещи – программа tor (https://www.torproject.org/)
и Privoxy (http://sourceforge.net/projects/ijbswa/files/).
Privoxy – свободный веб-прокси, который мы будем использовать для того что бы подключиться к Tor-у.

После распаковки Tor-а в указанную нами папку запускаем файл “Start Tor Browser.exe”.
Откроется сначала Панель контроля тора и сразу за ней Tor browser.


Панель контроля тора

Панель контроля тора


Панель контроля Tor позволяет настраивать наше соединение через сеть Tor,


Tor browser

Tor browser




а Tor browser это браузер, который уже подключён к сети Tor и вы можете использовать его для анонимного посещения интернета.

Жмём в Панели контроля на кнопочку Settings.
Перед нами откроется диалог Настроек. Переходим в нём на закладку Advanced после чего жмём Edit current torrc.
Перед нами откроется на редактирование файл настроек.


диалог Настроек tor

диалог Настроек tor

Нас интересуют порты на котором работает Tor. Это две записи в самом конце файла:

Теперь подготовим к работе Privoxy. Для этого переходим в папку, в которую мы установили Privoxy. Находим там файл config.txt и открываем его на редактирование. Находим в нём строку “# forward-socks5 / 127.0.0.1:9150 .» . Удаляем из начала строки символ ‘#’, то есть включаем данную настройку. Проверяем что бы порт указанный в этой строке соответствовал значению “SocksPort” в Tor-e. Так же нам нужно найти значение listen-address. В нашем случае это строка выглядит следующим образом listen-address 127.0.0.1:8118, то есть привокси работает на 8118 порту. Сохраняем изменения и запускаем Privoxy.

Далее настраиваем Human Emulator так что бы он работал через привокси, который в свою очередь теперь работает через Tor. Для этого в скрипте задаём Privoxy в качестве прокси- сервера через, который будет работать Human Emulator с помощью cследующего кода:

Проверим работу с помощью простого скрипта:

Если всё нормально наблюдаем следующую картину:


Tor подключен к Human Emulator

Tor подключен к Human Emulator

Предположим нам нужно запустить Human Emulator в многопоточном режиме,
так что бы все потоки работали под Tor-м. Для этого копируем уже имеющиеся папки у нас Tor и Privoxy столько раз сколько
потоков мы будем запускать. Далее запускам каждую пару Tor-а и Privoxy и перенастраиваем их на работу на других портах.
Для этого в настройках Tor-а, там где мы смотрели SocksPort 9150 и ControlPort 9151
меняем эти значения на новые, скажем SocksPort 9152 и ControlPort 9153 и жмём кнопку Ok.

Примечание: Если через встроенный редактор не получается изменить тогда открываем файл «C:\Tor Browser\Data\Tor\torrc»
в стороннем редакторе, скажем в Wordpad и правим этот файл в нём. При этом желательно выключить настраиваемый Tor.
Для того что бы понять удалось ли нам перенастроить Tor на новые порты нужно после запускать открыть Tor browser и
перейти в нём скажем на google.com. Если удалось перейти, а в настройках Tor-а указаны нужные нам порты, значит,
всё работает нормально.

Тогда в Привокси для этого Тора в файле config.txt задаём строку «forward-socks5 / 127.0.0.1:9152 . «.
А сам Privoxy будем запускать на 8119 порту. Для этого в строке
listen-address 127.0.0.1:8118 вместо 8118 пишем 8119 и сохраняем настройки.
Соответственно, в скрипте Human Emulator-а, который должен работать под этой парой код для подключения привокси будет следующий:

А скрипт для проверки будет такой:

Так же на нашем канале в youtube Вы можете посмотреть пошаговое видео как настраивать Human Emulator под Tor-м.

Видеоролик как настроить однопоток Human Emulator под последний Tor



Видеоролик как настроить Human Emulator в два потока через Tor


Как написать простой скрипт автозаполнения веб форм на Human Emulator

Очень часто в интернете нам встречаются формы на web страницах.
Эти формы на веб страницах служат для подачи анкет, подачи объявлений, подачи различных заявок, отправки комментариев и много другого.
Часто так случается, что нам регулярно приходится заполнять одни и теже формы на одном или на разных сайтах, например:
подача объявлений на различные интернет доски. Этот процесс превращается в рутину и нам хочется от неё избавится.
Для этого вам всего лишь нужны программы, которые будут это делать за Вас — скажем программа для автоматической подачи объявлений,
или программа для автозаполнения форм или программа для автозаполнения документов и т.д.
На самом деле, всё что вам нужно это программа Human Emulator,
так как она делает все перечисленные выше действия.
К тому же Human Emulator заполняет веб формы любой сложности, написанные в том числе и с иcпользованием ajax и javascript-ов,
умеет обрабатывать капчи и много ещё чего умеет полезного делать,
что пригодится при решении задач типа заполнения веб форм или подачи объявлений.

Возможно вам также будет интересен наш парсер Авито Недвижимость

В этой статье мы расскажем как накидать простой скрипт автозаполнения форм с помощью Human Emulator на примере подачи объявления на доску авито
(avito.ru).

Для начала создаём новый скрипт и добавляем код для перехода на нужный нам сайт, в нашем случае это доска объявлений авито(avito.ru):

Затем переходим к заполнению формы подачи объявления. Для этого кликнем на ссылку с текстом «Подать объявление»:

Теперь приступим к заполнению формы. Для наглядности мы выбираем «кампания» т.к. этот путь немного сложнее и нам придётся заполнить больше полей.
Правым кликом вызываем контекстное меню для чекбокса и по имени задаем на него фокус.
После этого мы используем функцию эмуляции клавиш и после задания фокуса на чекбокс эмулируем нажатие клавиши Вправо(Right):

Примечание: Просмотр клавиатурный кодов, которые используются в функции send_key можно посмотреть
с помощью меню «Сервис->Просмотр клавиатурных кодов» Хумана Эмулятора или по нажатию клавиш Ctrl+Shift+K.
В открывшемся диалоге нажимаем интересующую нас клавишу и смотрим её код.

Далее для полей ввода текста через вызов контекстного меню для каждого поля и нажатия пункта «изменить элемент->set_value_by_name»
добавляем в скрипт следующий код:

Если надо делаем клик по чекбоксу «Согласен» по имени этого чекбокса:

Далее делаем выбор города.
Если какой либо элемент плохо реагирует на работу с ним даже через атрибуты, то мы всегда можем использовать эмуляцию клавиатуры.
У нас при написании скрипта возникли трудности при работе с элементом выбора города.
Поэтому как раз после ввода телефона эмулируем нажатие клавиши «tab», после нажатия которой, фокус переключается на элемент выбора городов.
Далее после открытие списка городов нажимаем клавишу «space» — она же Пробел.
Теперь выбираем сам город. Тут можно через эмуляцию нажатия 1-й буквы города или через нужное
количество эмуляции нажатия клавиши «вниз». Если нет нужного города, то переходим к вкладке
«выбрать другой город» — эмулируем дважды нажатие буквы «В», но в этом случае не забывайте про
русскую раскладку или используйте функцию хумана для переключения языка:

Выбрав город, далее по аналогу через эмуляцию клавиш заполняем остальное

C описанием и остальными полями делаем аналогично как с предыдущими полями ввода — работаем через контекстное меню
для каждого поля «изменить элемент->set_value_by_name».

Публикуем наше объявление нажатием на кнопку «Подать объявление», которая на самом деле ссылка:

Так же между всеми шагами добавить паузу для того что бы страница с веб формой успевала реагировать на наши действия:

В итоге у нас должен получиться следующий скрипт:

Аналогично этому скрипту пишутся все скрипты автозаполнения веб форм, автоматической подачи объявлений, добавления комментариев и т.д.

Среди наших скриптов для Human Emulator вы легко сможете найти ещё примеры, которые решают подобные задачи.

Как написать простой скрипт парсер на Human Emulator

Предположим у нас стоит задача собрать контактные данные организаций с какого то сайта. Для примера возьмём сайт
«Желтые страницы Рунета» http://www.yellowpagesrussia.ru. Нам нужно собрать данные организаций из раздела
«Морской транспорт – организации» http://www.yellowpagesrussia.ru/190/154/.

Для начала работы нам понадобится стандартная заготовка скрипта. Её можно создать по нажатию в меню Файл->Новый->Скрипт
или по нажатию «горячих» клавиш «Ctrl+N». После чего создать папку в папке My Scripts с именем нашего будущего
скрипта в нашем случае yellowpages и переместить наш скрипт в эту папку через меню «Файл->Сохранить как» yellowpages.php.

Далее мы вставляем шапку с настройками:

Примечание: Файл functions.php можно взять из любого скрипта, который вы можете скачать у нас на сайте.
Его нужно поместить в папку tools, которую создать в папке со скриптом.

Для начала работы перейдем на нужный нам сайт для этого используем команду хумана:

Далее нам нужно через правую панель «Дерево элементов» найти общий id контекста
кликаем по данным правой кнопкой и выбираем «посмотреть в дереве элементов»
находим наиболее подходящий элемент, подглядывая в «инспектор», чтобы внутренний текст
(или html код) содержал максимум нужной нам информации!
Найдя нужным идентификатор, с помощью функции Human Emulator выпарсиваем все данные со страницы
в нашем случае это id = content для объекта $div
пишем в скрипте(либо правой кнопкой мыши вызываем контекстное меню и кликаем на нужный нам контент и выбираем нужный пункт):

после выполнения этого шага хуманом мы получаем массив с данными,
которые сохраним с помощью функции добавления строки в файл:

данные будут добавлены в указанный текстовый файл. Тело скрипта теперь выглядит следующим образом:

Далее проверяем результат…и видим, что записались лишние данные!
используем для решения этой проблемы заранее написанную нами функцию get_string().
Исходники её лежат в файле «tools/functions.php».

C помощью этой функции выкусываем нужные данные:

В итоге у нас должен получится следующий скрипт:

Так же можно использовать заранее написанную нами функцию для перехода на следующую страницу
next_page();, которая так же находится в файле «tools/functions.php».

С её помощью можно пропарсить все доступные страницы, запихнув ее в бесконечный цикл,
который будет выглядеть примерно так:

В итоге за 15 минут мы накидали скрипт парсер, который собирает данные со всех страниц, либо только с заданных.
Если бы мы стали писать парсер на php, то это заняло у нас гораздо больше времени.

Как работать с Human Emulator во многопотоке. Запуск из bat-файла.

Мы уже начали рассказывать Вам о том как работать с Human Emulator во многопоточном режиме.
В этой статье мы расскажем как запускать несколько копий Хумана из bat-файла.

Для начала: bat-файлы или точнее пакетные или batch файлы это обычные текстовые файлы,
содержащие наборы команд интерпретатора и имеющие расширение bat.
Редактировать такие файлы можно при помощи блокнота или любого другого текстового редактора.
Детальнее про них можно посмотреть на википедии,
а так же тут.

В нашем случае нас интересует запуск программ из bat-файла. Для этого используется команда start и для запуска Human Emulator
эта команда будет выглядеть следующим образом:

start «XWeb Human Emulator» «C:\Xweb MT\Human Emulator\XWeb Human Emulator.exe» /port:»7010″ /script:“D:\scripts\script7010.php”

где:

«XWeb Human Emulator» — заголовок, выводимый в области заголовка окна.

«C:\Xweb MT\Human Emulator\XWeb Human Emulator.exe» /port:»7010″ /script:“D:\scripts\script7010.php”
— путь для запуска exe-ника с параметрами командной строки. Это /port:»7010″ порт, на котором запускать программу и
/script:“D:\scripts\script7010.php” скрипт, который надо запускать при старте Human Emulator.

Теперь запишем bat-файл для запуска 5 копий хуман эмулятора. Этот файл будет выглядеть следующим образом:

start «XHE» «C:\XWeb MT\Human Emulator 7011\XWeb Human Emulator MT.exe» /port:»7011″ /script:»C:\XWeb MT\Human Emulator 7011\My Scripts\proxy\check_proxy.php» /script_args:»7011 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator 7012\XWeb Human Emulator MT.exe» /port:»7012″ /script:»C:\XWeb MT\Human Emulator 7012\My Scripts\proxy\check_proxy.php» /script_args:»7012 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator 7013\XWeb Human Emulator MT.exe» /port:»7013″ /script:»C:\XWeb MT\Human Emulator 7013\My Scripts\proxy\check_proxy.php» /script_args:»7013 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator 7014\XWeb Human Emulator MT.exe» /port:»7014″ /script:»C:\XWeb MT\Human Emulator 7014\My Scripts\proxy\check_proxy.php» /script_args:»7014 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator 7015\XWeb Human Emulator MT.exe» /port:»7015″ /script:»C:\XWeb MT\Human Emulator 7015\My Scripts\proxy\check_proxy.php» /script_args:»7015 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

Как мы видим тут добавилась строка ping -n 1 -w 5000 192.168.254.254 >nul. Это строка необходима нам для паузы между запуском
следующей копии Хумана.
Так же добавились аргументы командной строки самого Хумана: /script_args:»7011 » /in_tray:»true».
Аргумент /script_args служит для передачи аргументов внутрь скрипта, а /in_tray за сворачивание при старте Хумана в трэй.
Нужно отметить, что с помощью /script_args можно передавать в скрипт любое количество аргументов.
Для передачи их в скрипт используется запись /script_args «7015 аргумент1 аргумент2 и т.д. «.
Для получения этих аргументов в скрипте используется $argv — массив переданных скрипту аргументов, где:
$argv[0] — это всегда путь к скрипту, а $argv[1]- порт.
Остальные аргументы будут находиться в элементах массива $argv, начиная со второго, то есть: $argv[2] — аргумент1,
$argv[3] — аргумент1, $argv[4] — т.д.

Приведённый выше пример bat-файла запускает 5 Human Emulator, которые заранее были раскопированы по папкам
Human Emulator 7011, Human Emulator 7012, Human Emulator 7013, Human Emulator 7014, Human Emulator 7015.
Мы можем сделать запуск 5 копий программы и скрипта из одной папки. Для этого в скрипте в переменной $xhe_host нужно
поменять явное указание порта, на $argv[1], то есть в результате будем иметь $xhe_host =»127.0.0.1:».$argv[1];

Пример скрипта подготовленного для запуска в нескольких копиях программы:

Если в скрипте нужно работать с какими-то файлами, то для того что бы каждая копия работала со своим файлом можно добавить в
имена файлов $argv[1], например:

Для запуска нескольких Human Emulator из одной папки и одного и того же скрипта наш bat-файл будет выглядеть следующим образом:

start «XHE» «C:\XWeb MT\Human Emulator\XWeb Human Emulator MT.exe» /port:»7011″ /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php» /script_args:»7011 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator\XWeb Human Emulator MT.exe» /port:»7012″ /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php» /script_args:»7012 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator\XWeb Human Emulator MT.exe» /port:»7013″ /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php» /script_args:»7013 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator\XWeb Human Emulator MT.exe» /port:»7014″ /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php» /script_args:»7014 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

start «XHE» «C:\XWeb MT\Human Emulator\XWeb Human Emulator MT.exe» /port:»7015″ /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php» /script_args:»7015 » /in_tray:»true»

ping -n 1 -w 5000 192.168.254.254 >nul

Так же можно запускать несколько копий и каждой копии отдавать свой скрипт.
Для этого просто нужно будет указать этот скрипт в /script:»C:\XWeb MT\Human Emulator\My Scripts\proxy\check_proxy.php»

НО как показывает практика запуск нескольких копий программы из одной папки и одного и того же скрипта с использованием
передачи в него аргументов, работает менее надёжно, чем запуск программы и скриптов из разных папок.

Ну и на последок пример кода скрипта Human Emulator, который сам создаёт бат-файл и запускает его на выполнение:


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