Управление приложениями Windows в Human Emulator

Сегодня я расскажу как можно управлять любыми приложениями Windows в Human Emulator’е на уровне эмуляции действий пользователя. Управление осуществляется по следующему сценарию :

  • поиск и подключение к нужному нам приложению через его окно, используя различные варианты поиска (по номеру,тексту окна,классу окна, координатам и т.д)
  • управление или получение свойств этого окна
  • эмуляция событий мыши или клавиатуры в данном окне
  • поиск других дочерних окон к данному, относящихся к этому приложению для дальнейшего управления им

Для  этого существуют следующие объекты :

  • $window — объект, позволяющий создать связь с заданным окном или несколькими окнами
  • $windowinterface — объект представляющий из себя интерфейс для управления заданным окном
  • $windowinterfaces — объект для управления группой окон
скриншот работы скрипта по управлению скайпом через Human Emulator

работа скрипта по управлению скайпом через Human Emulator

В папке программы в подпапке Scripts Pack (готовые скрипты) есть примеры управления Скайпом и Аськой. Преимущество такого метода — в том что нам не нужно знать внутренне устройство приложения, ни его протоколы, для того чтобы управлять им. Все происходит на уровне окон, мыши и клавиатуры. Т.е как будто сприложением работает реальный человек.

Т.е мы находим нужное нам окно, получаем по нему все необходимые свойства и через мышь или клавиатуру управляем его состоянием. Весь необходимый функционал уже предоставлен самой программой. Кроме того как и браузером — мы можем управлять окнами удаленно. Т.е хуман установлен на одном компьютере, а управляющий скрипт на другом. Более подробные примеры и описание про тот что делает каждая функция всегда можно найти на сайте разработчиков — humanemulator.net.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, PHP, Обучение Метки: , , ,

Методы борьбы с утечками памяти и GDI в IE для Human Emulator

В этой статье я расскажу особенности организации сбора данных через Human Emulator с учетом того что в Internet Explorer существуют утечки памяти. Данная особенность не позволяет просто написать скрипт, который бы работал бесконечно. Например особенно сильно это проявляется при запросах данных с Adwords. Так например уже при 10-30 обновлений страниц, из-за-за насыщенности JS на странице, происходит переполнение памяти (на 1 копию программы Windows может выделить только 2Gb памяти). А на все запущенные программы всего 10 000 GDI ресурсов. Но варианты есть всегда.

как побороть утечки памяти IE

борьба с утечками памяти в IE

Есть несколько методов  решения этой задачи:

1. Открытие нескольких вкладок с браузерами во время работы

В хуман эмуляторе есть возможность открыть несколько закладок с IE. Каждая из закладок представляет из себя полностью самодостаточный браузер со своими параметрами, DOM моделью и соответственно JS объектами. Закрывая такую закладку мы освобождаем всю память, которую занимает этот браузер. Для этого в программе есть команды $browser->set_count($count) и $browser->set_active_browser($num), которые соответственно задают число закладок с браузерами и активную закладку. Организовав скрипт что он вначале открывает дополнительную закладку, работает в ней, а затем когда памяти или ресурсов становится мало, — то закрывает и пересоздает ее. Таким образом происходит очистка памяти и нам это позволяет осуществлять сбор данных в непрерывном режиме.

2. Использование команды browser->recreate()

Команда $browser->recreate() — по факту тот же самый вариант, описанный в первом случае, только для одной закладки. Скрипт во время работы определяет момент когда памяти и GDI ресурсов становится недостаточно и пересоздает браузер, очищая лишнее. Далее идет работа в обычном режиме и это тоже позволяет нам осуществлять сбор данных с интернета, несмотря на утечки памяти, происходящие в IE.

3. Использование команды перезапуска XHE для очистки памяти в IE

В Human Emulator также существует команда $app->restart, которая сама по себе достаточно гибкая. В нашем же случае, в момент когда ресурсов становится мало или еще по какой-либо причине мы просто перезапускаем текущий скрипт и он начинает свою работу в абсолютно чистом IE. Это самый надежный вариант. Но для его реализации нужно запоминать состояние всех переменных и объектов, если конечно PHP скрипт не запущен отдельно из командной строки (тогда можно просто пересоздаем экземпляр хумана без перезапуска самого скрипта). Для этого можно использовать например текстовые файлы или базу данных.

4. Управление перезапуском скрипта через настройки

перезапуск Human Emulator после утечек памяти

перезапуск Human Emulator после утечек памяти

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

Функции позволяющие узнать о текущем состоянии памяти и занятых ресурсах

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

  • $debug->get_cur_mem_size() — получить количество памяти, который сейчас использует программа
  • $debug->get_gui_resources() — получить число GDI ресурсов, которые сейчас использует программа
  • $debug->get_min_mem_size() — получает минимальный размер памяти, когда-либо занимаемый программой в текущем запуске
  • $debug->get_max_mem_size() — получает максимальныйразмер памяти, когда-либо занимаемый программой в текущем запуске
  • $debug->get_free_physical_mem_size() — получает размер свободной физической памяти
  • $debug->optimize_memory() — производит единовременную оптимизацию и дефрагментацию памяти

Вывод :

Таким образом мы видим что для организации сбора данных, используя программу Human Emulator у нас достаточно функционала. Мы можем бороться с утечками памяти Internet Explorer’a различными методами и организовывать автоматический сбор данных с интернета в непрерывном режиме. Далее я расскажу о принципах удаленного использования программы. Т.е как поставить ее на сервер и управлять ее работой с любого места в интернете.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Обучение Метки: ,

Human Emulator — запуск из командной строки

Этой статьей я продолжу цикл статей о тонкостях использования хуман эмулятора для сбора данных. Предыдущие два сборщика запускались в один поток без использования прокси и из под хуман эмулятора. Чтобы запускать мультипоточно Human Emulator нам понадобятся параметры командой строки. Для того чтобы сделать наши сборщики по аналогии со сборщиками сбора поисковых подсказок.

параметры командной строки Human Emulator

обзор параметров командной строки Human Emulator

Итак вот они : эти параметры командной строки  поддерживаются программой Human Emulator:

  • /port:»ПОРТ« — указывает хуман эмулятору на каком порту запускать прием управляющих команд. Если этот параметр не задан, то порт берется из файла port.txt в папке программы. Порт может принимать значения от 1 до 65535. На этом порту запускается прослушивающий сокет, на который приходят POST HTTP запросы. Эти запросы обрабатываются хуманом в очередности их поступления. Одна команда в одно и тоже время. Например, параметр /port:»7010« — указывает хуману запускаться на 7010 порту.
  • /script:»ПУТЬ К СКРИПТУ« — указывает хуману что нужно открыть и выполнить заданный скрипт. Если параметр не указан, то хуман просто запускается и ждет команд. Например, параметр /script:»D:\Batch\Harvest Keyword Planner\threads\gkplanner_0\run.php«, запустит на выполнение скрипт по заданному пути.
  • /in_tray:»yes« или /in_tray:»true« или /in_tray:»1« — указывает хуману, что при запуске надо сворачиваться в трей (там где часы). таким образом можно сделать так чтобы хуман запускался беззвучно. Особенно с командой $app->show_tray_icon(false); можно сделать присутствие хумана на машине совсем не напрягающим и незаметным, чтобы его работа не мешала основной деятельности и не загромождала экран. Например, параметр /in_tray:»yes« запустит хуман, свернутым в трей область.
  • /script_args:»АРГУМЕНТЫ ДЛЯ СКРИПТА« — этот параметр указывает хуману что при запуске скрипта надо ему передать параметры. Для PHP скрипта параметры после передачи будут доступны в переменной- массиве $argv[]. Например,  /script_args:»1 2 3« после передачи такого аргумента в мы получим следующие аргументы командной строки argv[0]=»путь к запускаемому скрипту», argv[1]=»1″, argv[2]=»2″ и argv[3]=»3″
  • /cache_folder:»ПАПКА ДЛЯ КЭША« — этот параметр задает папку где браузер хуман эмулятора будет хранить свой кэш (хранилище временных фалов, например загруженные картинки, видео, скрипты и т.п.). Это нужно для анонимности, некоторые сайты могут так отслеживать «уникальность заходов». Если этот параметр не задан, то кэш хранится в папке программы по следующем пути «\Порт\Cache\». Например параметр /cache_folder:»C:\Cache1« укажет хуману что работа с кэшем будет происходить в папке C:\Cache1
  • /cookies_folder:»ПАПКА ДЛЯ КУКОВ« — а этот параметр задает папку, где браузер Human Emulator будет хранить куки (различные параметры, которые записываются сайтами). Это опять же влияет на анонимность и например авторизацию. Если этот параметр не задан, то куки будут хранится в папке программы по следующему пути «\Порт\Cookies\». Например параметр /cookies_folder:»C:\Cookies1« укажет хуману что работа с куками будет происходить в папке C:\Cookies1
  • /ask_port:»yes« или /ask_port:»1« или /ask_port:»true« — указывает что при старте программы не задавать вопросов о переходе на следующий свободный порт, если текущий порт занят, то просто не запускать хуман эмулятор.

Вывод:

Используя эти параметры командной строки, мы в дальнейшем сможем организовывать работу наших сборщиков, использующих Хуман Эмулятор во многопоточном режиме. Особенно нам интересны параметры /port , /script , /script_args и /in_tray. Используя их мы можем запускать хуман в различных вариантах для организации сбора данных как с отдельных сайтов, так  и для создания целых распределенных многопоточных систем сбора. В следующей статье я рассмотрю возможности хумана для удаленного управления им по IP адресу и порту.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Общая информация Метки: ,

Сборщик слов с Google.KeywordPlanner

В предыдущей статье я создал сборщик поисковых фраз с Yandex.Wordstat. Для  этого я использовал Human Emulator. Сегодня я создам сборщик ключевых слов, который будет получать информацию с Google Keyword Planner. Этот инструмент доступен для создания Adword-овых компаний и доступ к нему есть, если есть Adword аккаунт. Инструмент очень мощный, Гугл постарались на славу, однако довольно неплохо защищен от автоматического парсинга контента и достаточно тяжеловесен.  Но все же если очень захотеть то все можно сделать. Вот что у меня получилось :

скриншот сбора ключевых слов с Google Keyword Planner через Human Emulator

сбор слов c Google Keyword Planner

Для того чтобы создать этот сборщик, я создал класс CGoogleKeywordPlanner, производный от CBaseWebAPI (как и у всех предыдущих сборщиков) который представляет особенности самого сбора и прописал в нем как заходить, логиниться, собирать и сохранять слова . Кроме того в классе CInDataFile, который используется для получения запросов из файла-источника я добавил переменную $items_step, которая указывает сколько слов за раз нужно выдавать из этого источника. Вот в принципе и вся работа. Немного пошаманив с тем как правильнее добратся до нужных элементов и как организовать процесс сбора я пришел к следующему алгоритму:

  • Заходим в адворды, при этом логинемся если это необходимо.
  • Далее переходим на инструмент — оценки объема поиска.
  •  Создаем файл с 800 слов, которые загружаем в инструмент.
  •  После этого переходим на закладку и идеи ключевых слов и качаем полученные файлы по кнопке Download.
  •  Далее полученный файл добавляем к файлам результатов
  •  Переходим к следующему шагу

В результате имеем сборщик ключевых слов, попутно собирающий еще среднее число запросов в месяц а также цены в Гугл Адворд по заданным словам. Эта очень полезная информация. На основе нее можно много чего сделать интересного. Например подобрать тематику для сайта и бизнеса. Подобрать рекламные слова для своей компании в Адвордах или Директе, а также различные другие задачи для которых нужны списки ключевых слов с ценами и популярностью.

скриншот результатат сбора данных с Google Keyword Planner через XWeb Human Emulator

пример собранных данных с Google Keyword Planner через Human Emulator

Выводы : 

Таким образом получился более менее стабильный сборщик ключевых слов, популярностей и цен на них для Google Keyword Planer. За сутки может получить несколько сотен тысяч данных по поисковым запросом, особенно интересно среднее число поисков в месяц (популярность) и цена за слово в адвордах. Хочу подчеркнуть что в сборщике введены паузы для избежания бана, а также для его работы нужен логин с паролем для адвордов.  Также код сборщика основан на использовании Human Emulator в режиме эмуляции браузера.  Хочу еще подчеркнуть что информацию о том где взять поисковые запросы и ключевые слова можно найти здесь.

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Обучение, Сбор ключевых слов Метки: , , ,

Сборщик слов с Яндекс.Вордстат

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

скриншот сбора поисковых подсказок с Яндекс.Вордстат на основе Human Emulator

сбор поисковых подсказок с Яндекс.Вордстат

Для того чтобы создать этот сборщик я добавил папку Templates из последней версии хуман эмулятора и подключил его к проекту. Далее создал класс CYandexWordstat, производный от CBaseWebAPI и слегка его переделал, чтобы базовый класс поддерживал много страничный сбор по одному запросу ( функция load_next_page и переделал функцию get под многостраничный сбор ). Сборщик ключевых слов работает следующим образом : для начала скрипт переходит на Yandex.Wordstat, далее логинимся в учетную запись Яндекса. После этого читаем и вводим текущий запрос из файла входных данных. Далее сохраняем полученные данные и если есть возможность нажимаем кнопку следующей страницы для сбора следующей порции подсказок по заданному запросу. И так пока не получим все страницы. Если в процессе работы выскакивает капча или диалог логина, то скрипт или становится на паузу или обрабатывает эту ситуацию. Также если происходят ошибки сервера и т.п вещи то скрипт это все отрабатывает. И в результате работы мы получаем следующие результаты :

скриншот результатов сбора ключевыхс слов с Yandex.Wordstat

результаты сбора ключевых слов и поисковых запросов с Яндекс.Вордстат

Вывод :

В результате у нас получился стабильный сборщик поисковых запросов с Яндекса. В сутки такой сборщик проходит около 3000 запросов, что дает на выходе порядка нескольких сотен тысяч ключевых слов с оценкой запросов в месяц по Яндексу. Этого вполне достаточно например для начального составления семантического ядра сайта. Также мы увидели что использование Хуман Эмулятора в качестве эмулятора и автоматизатора браузера вполне подходит для решения задач сбора данных с интернета.

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Сбор ключевых слов Метки: , , ,

Human Emulator и объекты для работы с окнами

В этой статье я рассмотрю последнюю категорию объектов Human Emulator’a, а затем перейду к созданию сборщиков использующих Хуман Эмулятор для сбора ключевых слов с различных веб источников. Итак категория PHP объектов WINDOW :

скриншот справки по категории Window для PHP объектов Human Emulator

скриншот справки по категории Window для PHP объектов Human Emulator

Как видим здесь собраны объекты для управления окнами как HumanEmulator’a так и всей системы в целом. Условно можно их разбить на несколько подкатегорий:

Управление окнами и работой Human Emulator’a :

  • app – управление работой приложения. Этот объект позволяет управлять внешним видом самого приложения и содержит следующие возможности :
    • вызов различных диалогов-вопросов для ввода исходных данных в скрипт
    • диалоги ручного распознавания каптчи для ввода капчи в скрипт без использования сервисов распознания каптч
    • управление видимыми параметрами эмулятора (размер окна хумана, позиция, полноэкранный режим, управление треем и т.п)
    • управление ходом выполнения (команды паузы,выгрузки и рестарта )
    • получение внутренней информации (текущий порт, код инсталяции, версия, путь к скрипты и программе и т.п)
    • получение внешней информации (например получить файл с компьютера на котором работает хуман )
    • запуск и останов внешних программ (запуск bat файла,другого PHP скрипта, внешней программы, остановка процесса)
    • управление прогрессом в статус баре (для того чтобы видеть ход выполнения скрипта)
  • debug – управление отладкой скриптов. Объект для работы с панелью отладки и различными отладочными парметрами, содержит:
    • работу с отладочной панелью (работа с закладками их содержимым на отладочной панели)
    • текстовые нотификации (диалоговое окно и всплывающее уведомление — для сообщений о работе скрипта)
    • информация о памяти и ресурсах, занимаемых программой, а также функцию оптимизации памяти
    • вспомогательные функции (информация о путях к текущему скрипту и отладочные хуки)

Получение и установка информации системы :

  • windows – управление оболочкой Windows. Содержит функции получения и задания системной информации.
    • получение информации о Windows (имя, версия, билд, сервис пак, платформа)
    • получение информации о железе и компе (название процессора, имя пользователя и название компьютера)
    • получение параметров разрешения экрана
    • установку параметров разрешения экрана

Управление любыми внешними программами :

  • window – работа с окнами других приложений. Этот объект позволяет выполнять операции с другими программами, запущенными на том компе что и хуман:
    • получает информацию по всем открытым окнам в системе
    • получает информацию по всем дочерним окнам к данному окну
    • выполняет различные стандартные диалоги встроенного браузера (загрузка,выгрузка,ввод данных)
    • получает прямые интерфейсы к окнам с заданными параметрами
    • получает объект-список прямых к интерфейсов к окнам с заданными параметрами
  • windowinterface – прямой интерфейс к окну Windows. Данный объект по сути связь между пхп и реальным окнам в системе в которой запущен хуман эмулятор:
    • управление окном (задание текста,видимости, позиции, размеров и т.д)
    • получение других окон (получает интерфейсы и списки интерфейсов дочерних, родительских, следующих и предыдущих и т.д окон )
    • получение свойств окна (текст,номер, стиль, класс,процесс ID и т.д)
    • получение расположения и размеров окна
    • проверка состояния окна (существует, видимо, дочернее,с фокусом и т.д)
    • эмуляция мыши в окне (движение, щелчки, нажатия и отжатия и т.п.)
    • эмуляция клавиатуры в окне (ввод строк, нажатие и отжатие клавиш,смена языка ввода и т.п)
  • windowinterfaces – список прямых интерфейсов к окнам Windows. Позволяет выполнять операции сразу с несколькими окнами.
    • функции получения отдельных окон и работа с ним как с отдельным окном
    • позволяет вызвать весь функционал что есть для каждого окна за один раз, получив результат выполнения в массив

Выводы:

Таким образом на основании пяти предыдущих статей, опубликованных на x-datas.com  мы видим что Human Emulator — идеально подходит для задач сбора данных с интернета и позволяет в режиме эмуляции браузера ходить по страницам сайта и получать то что нам нужно с них.  Широкие возможности во всех смыслах позволяют нам сделать сборщики данных (и не только ) практически с любых интернет ресурсов. Чем мы и займемся в следующих статьях. Будем все также колупать тему сбора ключевых слов. Пока я писал эти статьи мне удалось отладить сборщик подсказок ключевых слов с Yandex.Wordstat. В следующей статье я опубликую его с описанием и теми данными что успел собрать.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Обучение, Общая информация Метки: , ,

Human Emulator и объекты для работы с Интернетом

В этой статье я опишу какие возможности есть у Хуман Эмулятора для работы с Интернетом. За это отвечает категория PHP объектов, называемая WEB. Условно поделю их на несколько подкатегорий:

скриншот хелпа по категории WEB для XWeb Human Emulator

скриншот хелпа по категории WEB для XWeb Human Emulator

Объекты для работы с браузером и веб-страницей

  • browser – управление встроенным браузером. Это основной объект для эмуляции работы в браузере. Содержит массу возможностей:
    • навигация, проверка статуса статуса навигации
    • работа с закладками (в каждой закладке — свой браузер)
    • получение и установка системных параметров (модель браузера, его версия, юзер агент, а также папки куков и кэша)
    • получение и установка визуальных параметров (размер браузера и страницы, позиции скролов)
    • получение и установка контентных параметров (наличие картинок, видео,фреймов,java,java scripts и т.д)
    • работа с JS (включать и выключать, выполнять встроенные и произвольные JS скрипты)
    • работа с прокси серверами (задать прокси, снять прокси и получить текущий прокси)
    • работа с кукисами (установка и получение )
    • работа с popup страницами
    • работа с сообщениями браузера
    • работа с окнами авторизации браузера
    • работа с диалогом загрузки и выгрузки файлов
    • работа с акцептами и реферерами
    • выполнение встроенных команд браузера (сохранение страницы, печать страницы, смена масштаба и т.п …)
    • выполнение POST и GET запросов
    • проверки статуса соединения
  • webpage – работа с текущей веб страницей. Этот объект нужен для обработки и получения содержимого веб страницы. Позволяет делать следующее:
    • работать с телом страницы (позволяет получать разные части страницы а также заменять страницы в браузере)
    • получать информацию по текущей веб-странице (кодировку, активный элемент,урл,домен, исходник и т.п)
    • также содержит много других полезных функций (сохранение страницы , скриншот страницы , поиск координат по рисунку и многое другое)

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

Объекты для доступа к сервисам распознавания капч:

  • anticaptcha – распознование капчи используя сервис AntiGate.com
  • ripcaptcha – распознование капчи используя сервис RipCaptcha.com
  • evecaptcha – распознование рекапчи используя сервис Eve.cm
  • bypasscaptcha – распознование капчи используя сервис bypasscaptcha
  • captchabot – распознование капчи используя сервис captchabot.com

Как видно из названий добавить тут нечего, разве что каждый объект отвечает за свой сервис, на входе передается картинка каптчи и ключ сервиса, а на выходе имеем результат распознания каптчи или людьми или в полуавтоматическом режиме. За каждое такое распознание с нас взимается небольшая сумма денег, обычно 2-3 бакса за 1000 каптч. Хочу отметить только работу сервиса антигейт, на мой взгляд — лучший сервис из всех, хотя бывает загружен, и тогда лучше использовать их все вместе.

Объекты для работы с заданными протоколами и сервисами Интернета:

  • connection – управлением соединением с интернетом. Объект позволяет следующее:
    • получение параметров текущего соединения (модем, сеть, есть инет или нет и т.д)
    • получение локального и реального ай-пи адреса
    • работа с Ethernet (запускать и отключать заданные сетевые соединения)
    • работу с RAS (управление модемными соединениями — логин, перезапуск)
  • ftp – работа с фтп. Позволяет работать с фтп соединением и может следующее :
    • подсоединятся и отсоединяться от фтп
    • работать с фтп папками
    • работать с фтп файлами
    • другие полезные фтп команды
  • mail – работа с почтой. Данный объект работает с POP3 и SMTP соединениями, и может следующее
    • соединятся по POP3 и SMTP
    • управлять параметрами POP3 и SMTP соединений
    • получать количество писем на сервере и получать эти письма по POP3
    • по POP3 получать различную информацию о письме с сервера, не удаляя само письмо (дата, тема, от кого, размер и т.п.)
    • отсылать сообщения по SMTP в текстовом и HTML видах
  • proxycheker – управление прокси — чекером. Этот объект служит для  проверки работоспособности прокси серверов и может делать следующее :
    • работа со списком прокси (добавление, добавление из файла, убирание дубликатов и редактирование)
    • получение информации по списку прокси и других различных характеристик по каждому из прокси адресов
    • собственно управление самим процессом тестирования (запуск, останов, задание качества и скорости тестирования)
  • raw – управление raw потоками браузера. Этот объект служит для получения информации об обмене браузера с сервером и может следующее
    • включать и выключать слежение за различными типами протоколов
    • получать последнюю запрошенную информацию браузером (урлы и заголовки)
    • получать последнюю отвеченную сервером информацию (урлы и содержимое)
    • очищать последнюю информацию
    • вмешиваться в процесс запроса информации и ее получения

Т.е эта подкатегория позволяет решать уже ряд очень специфических задач, возникающих в процессе сбора данных. Ну а последняя подкатегория — это вспомогательная.

Вспомогательные объекты :

  • seo – набор функций, связанных с SEO. Данный объект позволяет получать карту сайта, а также внешние и внутренние ссылки. Весьма вспомогательный.
  • submitter – вспомогательный объект для сабмита информации в веб. Этот объект более нам интересен с точки зрения постинга в веб. Хотя иногда чтобы что-то собрать с веба надо туда что-то запостить, например те же регистраторы аккаунтов. Содержит следующий функционал
    • получение случайных географических данных (страна, регион, город, улица)
    • получение случайных ников, имен и фамилий
    • получение случайных строк и чисел

Т.е как видим из описания функционала, Хуман Эмулятор умеет весьма много. И это мы обязательно будем использовать создавая наши скрипты сбора данных. А в следующей статье я расскажу про категорию Window, тут собраны объекты, помогающие хуман эмулятору взаимодействовать с Windows а также управлять любыми другими сторонними программами и окнами.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Обучение, Общая информация Метки: , ,

Human Emulator, и базовые системные Операции

Этой статьей я продолжу описание использования XWeb Human Emulator для решения задач сбора данных. Сегодня поговорим о функционале, предоставляемом PHP объектами из категории SYSTEM:

объекты System для Human Emulator

скриншот описаний объектов System для Human Emulator

  • clipboard – работа с буфером обмена. Данный объект полезен для обмена информацией через буфер обмена. Например для того чтобы скопировать информацию из файла в заданный элемент браузера или даже в любое другое окно системы.
  • file_os – управление локальными файлами. Данный объект используется для работы с файлами в файловой системе. Как для системных операций, например копирование файла, перемещение файла, так и для получения информации о фале, времен доступа к файлу, а также работы с его атрибутами.
  • firebird – работа с локальной базой данных Firebird — позволяет работать с любой Firebird базой, получать и добавлять записи, а также выполнять любые другие SQL запросы.
  • folder — управление локальными папками — этот объект позволяет работать работать с расположением папки на диске, например копировать, переносить и удалять папки целиком. Также получать любую информацию по каждой из папок, включая атрибуты и даты доступа.
  • msword – работа с вордом — позволяет управлять приложением MS Word.  Есть функционал по созданию и открытию документов. А также функционал по добавлению различных видов текста. Также есть возможность по созданию таблиц.
  • sound – управление звуком — этот объект служит для подачи звуковых сигналов и проигрывания мелодий. Полезен для организации сигнализации в работе скрипта.
  • textfile – функционал для работы с текстовыми файлами. Этот объект служит для организации работы с текстовыми файлами, содержит широкий набор функций по получению информации, управлению, преобразованию и другими операциями необходимыми нам для организации сбора данных.

Про следующие два объекта я хочу сказать что благодаря этим объектам Хуман полностью позволяет получать контроль над мышкой и клавиатурой. Это нужно чтобы производить более глубокую эмуляцию действий пользователя, фактически неотличимую на уровне железа.

  • keyboard – эмуляция клавиатуры. Объект позволяет как полностью эммулировать клавиатуру, так и на уровне событий. Есть эмуляция ввода целых строк, нажатия и отжатия управляющих и обычных клавиш. А также возможности по смене языка ввода.
  • mouse – эмуляция мыши. Объект позволяет полностью эммулировать мышь, а также эмулировать события мыши для приложения хумана. Есть возможности управления щелчками, нажатиями и отжатиями правой и левой кнопки мыши, управление перемещением мыши, а также эмуляция работы колеса мыши.

Вывод

Как видим объекты XWeb Human Emulator из категории SYSTEM существенно облегчают нам жизнь в решении задач сбора данных. Особенно если учесть что эти команды могут быть выполнены как локально (на домашней машине) так и удаленно (на любой другой машине, чей ай-пи адрес известен и на которой запущен хуман). Все это нам пригодится в написании сборщиков, которые будут эмулировать работу браузера, нажимать ссылки и вести себя как обычный интернет пользователь.  А в следующей статье я опишу следующую категорию объектов хуман эумлятора. Категория WEB — функционал для работы с интернетом и сетью.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Обучение, Общая информация Метки: , ,

Human Emulator и работа с элементами HTML

Если при навигации на определенную страницу, элементы на выдаваемой странице строятся динамически, то Human Emulator — идеальное решение для таких случаев.  В этой статье я вкратце опишу как Human Emulator использовать для работы элементами HTML страницы.

описание XHE объектов из категории DOM

описание XHE объектов из категории DOM

1. DOM объекты заданного типа

За это отвечают объекты из категории DOM, —  каждый из объектов  (за исключением интерфейса и списка интерфейсов) отвечает за работы с элементами заданных типов. Например $anchor — описывает за работу со ссылками на текущей веб странице, а $image — за работу с картинками, и так по каждому из общеупотребляемых тэгов.

Все эти объекты поддерживают следующие операции (Базовый функционал):

+ специфические операции для каждого объекта, например

для картинки ($image), это будет

а для таблицы ($table) :

И так по каждому из объектов. Как видим что возможностей более чем достаточно, можно напрямую управлять и получать как свойства DOM элементов так и эмулировать события мыши и клавиатуры для отправки их в заданный элемент.  Это уже позволяет нам иметь полный доступ и управления всеми HTML элементами.

2. DOM Интерфейсы

Но кроме того XHE позволяет напрямую подключатся к DOM интерфейсам. Для этого используются следующие объекты :

  • interface – прямой интерфейс к элементу страницы

Это нужно для того чтобы с максимальной эффективностью производить несколько операций с одним и тем же элементом или для более объектного подхода при решении задачи. Здесь объект interface — представляет связь с заданным DOM объектом, для чего используются функции установки связи :

А уже после установки связи с объектом могут быть произведены операции следующих типов :

3. Списки DOM Интерфейсов

  • interfaces – список прямых интерфейсов к элементам страницы

Этот объект содержит в себе сразу несколько DOM интерфейсов и позволяет одновременную работу сразу с ними всеми. Например чтобы сразу получить все ссылки с заданными классами или с заданными внутренними текстами.  Для получения списка интерфейсов можно воспользоваться следующими функциями :

После отработки мы получим объект со списком всех интерфейсов, удовлетворяющих заданным условиям. А уже после этого мы можем вызывать все те функции что есть отдельно у простого интерфейса и получать результат выполнения в массив, т.е каждый интерфейс даст собственную ячейку в массиве результатов.

Вывод

На этом все про категорию объектов DOM, которыми можно управлять встроенным в XHE браузером.  Как видно из вышеприведенного описания, функционала для того чтобы работать с элементами html страницы более чем достаточно, т.с на любой вкус и цвет. Даже кто плохо знаком с программирование может использовать объекты из первой категории которые по заданным параметрам выполняют то что от них требуется, кто хорошо знаком с ООП — тому рекомендуется использовать интерфейсы и списки интерфейсов, чтобы код получался легко читаемый и быстро переносимый. На этом пока все дальше я рассмотрю объекты из категории Web, System, Window, каждый из которых призван решать определенные задачи в сфере автоматизации сбора данных в нашем случае.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Общая информация Метки: , ,

Использование Human Emulator для сбора данных

Часто в процессе сбора данных, одного запроса урла через CURL недостаточно, например нужна авторизация с поддержкой флэша, данные появляются на странице через JS или еще либо как-то. Для этого существуют программы, которые позволяют автоматизировать браузер. (Эммуляторы и Автоматизаторы браузера) Т.е по сути они предоставляют возможность управления браузером посредством скриптов. Я остановлюсь на одной из них более подробно. Итак Human Emulator — система для веб автоматизации.

скриншот работы хуман эмулятора в режиме сбора ключевых слов

Human Emulator в работе по сбору ключевых слов

Описание программы Human Emulator (основное) :

  • программа представлена в виде интегрированной среды для разработчика (IDE)
  • решаемые задачи очень многогранны, фактически все что можно сделать в браузере все делается программой
  • язык на котором пишутся скрипты, управляющие работой браузера — PHP
  • в программе имеется встроенный редактор записи скрипов, упрощающий решения автоматизации
  • есть средства позволяющие просматривать элементы страницы и их свойства в виде различных представлений  (Дерево, Инспектор, Список и т.д)
  • есть панель отладки с возможностью просмотра всей необходимой информации в том числе и RAW обмен браузера
  • есть возможность открывать несколько браузеров а также менять их модели (IE от 6 до 11)
  • имеются средства облегчающие навигацию как в любом браузере (Панель Навигации, Фавориты, История и т.д)
  • возможность многозадачного выполнения скриптов (т.е запуск нескольких экземпляров программы, каждый со своей задачей)

Как видим Human Emulator для решения наших задач сбора — просто идеальное решение . Есть много мест в инете, откуда надо собрать информацию (например по тем же поисковым запросам) без эмуляции в браузере ну никак нельзя. Например

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

 

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Human Emulator, Общая информация Метки: , , , ,
Август 2016
Пн Вт Ср Чт Пт Сб Вс
« Фев    
1234567
891011121314
15161718192021
22232425262728
293031