WBApp (только для ULTIMATE версий)

Навигация

Основное

Описание некоторых основных событий

Создание события клика по элементу WEB-страницы:

Прокрутка к определенным элементам WEB-страниц (событие [CLICK] с параметром [ET_SCROLL], на примере блока выдачи результатов поиска в 2GIS)

Поиск HTML-элемента для клика сразу по двум атрибутам

Пример настройки WBApp для имитации кликов по кнопкам типа «показать еще» (на примере ответов мейл ру)

Распознавание текста капчи с помощью сервиса Antigate

Вызов WBApp из шаблона вывода Content Downloader при парсинге (с возможностью передачи множества текстовых данных)

Выбор элементов выпадающих списков

Выполнить определенные события, если код WEB-документа содержит/не содержит определенный текст или код

Выполнить определенные события, если событие клика сработало/не сработало

Передача текстовых переменных из Content Downloader в WBApp через текст ссылок

Решение возможных проблем


Для возврата к меню навигации используйте клавишу home



Дополнительные материалы

Значительное ускорение процесса парсинга и исключение пропусков WEB-страниц при парсинге с использованием библиотеки Internet Explorer (WBApp)

Передача текстовых данных из Content Downloader в WBApp

Создание скриншотов WEB-страниц с помощью приложения WBApp

Парсинг HTML-кода фрейма WEB-документа с помощью WBApp

Запись текущего кода WEB-страницы в файл на диске

Рендеринг (создание изображений) элементов WEB-страниц с помощью WBApp

Имитация нажатий кнопок мыши и клавиатуры в WBApp

Передача адресов WEB-страниц из WBApp в Content Downloader (событие WBApp [GETCURRENTURL])

Поиск объекта WEB-страницы с определенным цветом и клик на него




Основное


ВНИМАНИЕ!!! Для корректной работы WBApp, требуется иметь установленный Microsoft Internet Explorer не ниже 11 версии!!! (скачать его вы можете на сайте Microsoft.com в разделе «загружаемые файлы»)
Парсить с использованием WBApp НАСТОЯТЕЛЬНО рекомендуется только в 1 поток!

WBAppWBApp — приложение, созданное для Content Downloader, которое позволяет парсить сайты с использованием Internet Explorer Windows (он будет выполнять скрипты на web-страницах). В WBApp можно создать список событий, который будет выполняться при парсинге. Например, можно имитировать клики по элементам web-страниц (нажимать кнопки и прочее), выполнять прокрутку страниц вниз, заполнять текстовые формы и многое другое…

WBApp идет в комплекте с Content Downloader и вызывается соответствующей кнопкой на панели инструментов главного окна программы (Content Downloader).

Content Downloader (создание и редактирование проекта WBApp)

Напоминаем, что парсить через WBApp можно с любым типом лицензии, но использование списка событий WBApp возможно только с типом лицензии ULTIMATE! Обладатели менее продвинутых версий могут протестировать WBApp в полной мере (в режиме настройки WBApp).

ВАЖНО: Значительное ускорение парсинга с использованием библиотеки Internet Explorer (WBApp)


Знакомство с WBApp:






Описание некоторых основных событий

[GETHTML] — добавит текущий код страницы к результату парсинга. Если вызывать этот макрос несколько раз, например, в цикле, то, каждый раз, к результату будет добавляться текущий код web-страницы (на момент срабатывания макроса [GETHTML]). Его полезно применять в случае парсинга, например, нескольких страниц выдачи поисковика (чтобы при перелистывании на следующую страницу, результат парсинга не заменялся, а к нему добавлялся код следующей страницы выдачи).

[SCROLLDOWNTHENRETURN] — прокрутит web-страницу в самый низ. Если страница будет прокручена (то есть положение скроллбара изменится), то прогресс выполнения списка событий будет возвращен в самое начало. Если вставить [SLABEL], например, в середине списка событий, то прогресс будет возвращен не в начало списка, а к [SLABEL]. Этот макрос полезен, например, при парсинге комментариев или постов, которые подгружаются автоматически при пролистывании web-страницы вниз.

[SCROLLDOWN] — прокрутит web-страницу в самый низ.

[WAIT]:2000 — процесс выполнения списка событий приостановится на 2000 мс (2 секунды). Указать можно любое время, например 5000 (ожидать 5 секунд). Этот макрос можно применять в случае, когда необходимо дождаться загрузки определенных данных web-браузером.

[REPEAT] события
[/REPEAT]
— повторит события определенное (указанное в настройках) количество раз.

[HTMLPOINT] события
[HTMLPOINTCHECK]
— на [HTMLPOINT] текущий код web-документа будет скопирован в память WBApp. На [HTMLPOINTCHECK] текущий код (на момент выполнения [HTMLPOINTCHECK]) будет сравниваться с зафиксированным ранее кодом (на момент выполнения [HTMLPOINT]) и, если, старый и новый коды не совпадут, то прогресс выполнения списка событий вернется к [HTMLPOINT]. Этот макрос полезен, например, когда вам нужно спарсить все страницы выдачи поисковика или сайта (количество которых вы не знаете или оно может меняться).




Создание события клика по элементу WEB-страницы:

WBApp




Прокрутка к определенным элементам WEB-страниц (событие [CLICK] с параметром [ET_SCROLL], на примере блока выдачи результатов поиска в 2GIS)






Поиск HTML-элемента для клика сразу по двум атрибутам

Иногда требуется кликнуть, например, по кнопке «показать еще», которая не имеет ни одного уникального атрибута. Почти всегда можно подобрать уникальное сочетание двух атрибутов, которое встречается только у нужного нам элемента. Например: classname и offsetwidth, которые имеют значения b-form-button__click и 101 (соответственно).

Для поиска элемента сразу по двум атрибутам необходимо:
— создать событие клика по первому атрибуту (как обычно)
— Нажать ctrl+e (редактировать список событий в виде текста) и дописать к событию клика [SECOND]offsetwidth:101 (где offsetwidth — название второго атрибута, а 101 — его значение).

1
[CLICK][classname][N]0[/N][FULL]:b-form-button__click[SECOND]offsetwidth:101

Следует отметить, что [N]0[/N] нужно сделать равным нулю (как и указано тут)!!!




Пример настройки WBApp для имитации кликов по кнопкам типа «показать еще» (на примере ответов мейл ру)

[HTMLPOINT] — загружает в память программы текущий код web-документа
[CLICK][classname][N]0[/N][FULL]:btn btn-more btn-blue — кликает по кнопке «показать еще» (кнопка с классом btn btn-more btn-blue)
[WAIT]:2000 — ждет две секунды
[SCROLLDOWN] — прокручивает страницу вниз
[HTMLPOINTCHECK] — проверяет, изменился ли код web-документа (сверяя текущий код со старым, взятым в момент выполнения [HTMLPOINT]). В случае, если код изменился, то происходит возврат к [HTMLPOINT]




Распознавание текста капчи с помощью сервиса Antigate

Вставка группы макросов для распознавания капч происходит при клике на соответствующую кнопку в редакторе списка событий (ctrl+e):

1
2
3
4
5
6
7
8
9
10
11
12
13
[CAPCHA]
SIGNATURE=сюда вставить признак капчи (часть кода WEB-документа, которая присутсвует только тогда, когда есть капча)
[WAIT]:1500
KEY=сюда вставить ваш ключ сервиса Antigate
сюда вставить событие клика по картинке капчи (отправка скриншота капчи в сервис Antigate)
RUS
NUMERIC
RETURN
DO:
сюда вставить действия, которые нужно выполнить после получения текста капчи (вставка текста капчи в соответствующее поле и клик по соответствующей кнопке)
для вывода текста капчи используйте [CAPCHAVALUE]
[WAIT]:1500
[/CAPCHA]

Где:
SIGNATURE — признак наличия капчи в коде WEB-документа (если он не будет найден, то дальнейшие процедуры распознавания выполняться не будут)
KEY — ваш ключ сервиса Antigate (получить его нужно в личном кабинете сервиса Antigate.com)

RUS — параметр, который направит картинку на распознавание русскоговорящему работнику Antigate (этот параметр можно удалять)
NUMERIC — параметр, который определяет капчу, как числовую (состоящую только из цифр)(этот параметр можно удалять)

DO — после этого оператора (и до оператора [/CAPCHA]) выполняются события, которые нужно осуществить после распознавания картинки. Обычно это вставка [CAPCHAVALUE] (полученного текста капчи) в соответствующее поле и клик по соответствующей кнопке

RETURN — при наличии этого параметра, после выполнения процедуры распознавания капчи, прогресс выполнения списка событий будет возвращен в самое начало (или до первого встретившегося [CAPCHALABEL]. Потом, когда снова наступит событие [CAPCHA], будет производиться повторная проверка SIGNATURE. Если SIGNATURE опять будет найдена в коде WEB-документа, будет произведен повторный запуск процедур распознавания капчи (2 попытки).

Пример использования:

1
2
3
4
5
6
7
8
9
10
11
12
[CAPCHA]
SIGNATURE=<span class="capcha">введите текст картинки
[WAIT]:1500
KEY=d21978fa24d38712c4345783f84rfd
[CLICK][id][N]0[/N][FULL]:capchaimg
RUS
NUMERIC
DO:
[PASTE][offsetwidth][N]0[/N][FULL]:48[TEXT]:[CAPCHAVALUE]
[CLICK][classname][N]0[/N][FULL]:submitbutton
[WAIT]:3500
[/CAPCHA]





Вызов WBApp из шаблона вывода Content Downloader при парсинге (с возможностью передачи множества текстовых данных)

Важное примечание 1: Если вам нужно вернуть в Content Downloader данные из запущенного макросом [WBAPP] WBApp, то пропишите после названия проекта WBApp (в макросе шаблона вывода) [GETRESULT]. Например:

1
[WBAPP(C:\Users\Sila\Desktop\CDDATATEST2.wbapp[GETRESULT])][CDDATA:1]данные[/CDDATA][/WBAPP]

Тогда код документа, который будет существовать после работы списка событий WBApp, вставится в шаблон вывода Content Downloader на место вызова макроса [WBAPP]. Если вам нужно вернуть из WBApp не весь код WEB-документа, а какую-то его часть, то в конец списка событий WBApp добавьте примерно следующее:

1
[GETHTML]:начало{get}конец|{get}

Где между «начало» и «конец» в текущем коде WEB-документа WBApp содержатся нужные данные для возврата в Content Downloader.

Важное примечание 2: Если добавить [ONETHREAD], то WBApp будет запускаться только в одном потоке (это важно, например, когда используете функцию автоматического ввода текста с капчи):

1
[WBAPP(C:\Users\Sila\Desktop\CDDATATEST2.wbapp[GETRESULT][ONETHREAD])][CDDATA:1]данные[/CDDATA][/WBAPP]

Важное примечание 3: Макрос [WBAPP] выполняется практически после всех других макросов шаблона вывода. Если вам, например, нужно вызвать WBApp до других макросов шаблона вывода, используйте [WBAPP_F]:

1
[WBAPP_F(C:\Users\Sila\Desktop\CDDATATEST2.wbapp[GETRESULT][ONETHREAD])][CDDATA:1]данные[/CDDATA][/WBAPP_F]

Важное примечание 4: Если вам нужно принудительно открывать какую-либо WEB-страницу из Content Downloader (а не ту WEB-страницу, что сохранена в проекте WBApp), то пропишите ее адрес после символа вертикальной черты следующим образом:

1
[WBAPP(C:\Users\Sila\Desktop\CDDATATEST2.wbapp|http://SBFactory.ru/?p=600[GETRESULT][ONETHREAD])][CDDATA:1]данные[/CDDATA][/WBAPP]

Важное примечание 5: Если требуется всегда показывать окно WBApp при парсинге (вне зависимости от опции «показывать WBApp при парсинге» в окне ctrl+h), то добавьте оператор [SHOWWBAPP]:

1
[WBAPP(C:\Users\Sila\Desktop\CDDATATEST2.wbapp|http://SBFactory.ru/?p=600[GETRESULT][SHOWWBAPP][ONETHREAD])][CDDATA:1]данные[/CDDATA][/WBAPP]

Важное примечание 6: Если требуется НЕ показывать окно WBApp при парсинге (вне зависимости от опции «показывать WBApp при парсинге» в окне ctrl+h), то добавьте оператор [HIDEWBAPP]:

1
[WBAPP(C:\Users\Sila\Desktop\CDDATATEST2.wbapp|http://SBFactory.ru/?p=600[GETRESULT][HIDEWBAPP][ONETHREAD])][CDDATA:1]данные[/CDDATA][/WBAPP]





Выбор элементов выпадающих списков






Выполнить определенные события, если код WEB-документа содержит/не содержит определенный текст или код

1
2
3
4
5
6
7
8
9
10
11
12
13
[IFDOCHAS]:любой текст
События внутри [IFDOCHAS]...[/IFDOCHAS] выполнятся, если "любой текст" содержится в текущем коде WEB-документа (для обозначения переносов строк в "любой текст" используйте оператор {br})
Например, вот внутренние события:
[SCROLLDOWN]
[WAIT]:2000
[/IFDOCHAS]
 
[IFDOCHASNOT]:любой текст
События внутри [IFDOCHASNOT]...[/IFDOCHASNOT] выполнятся, если "любой текст" НЕ содержится в текущем коде WEB-документа (для обозначения переносов строк в "любой текст" используйте оператор {br})
Например, вот внутренние события:
[SCROLLDOWN]
[WAIT]:2000
[/IFDOCHASNOT]





Выполнить определенные события, если событие клика сработало/не сработало

1
2
3
4
5
6
7
8
9
событие клика по кнопке
[IFCLICKED]
действия списка событий, которые нужно выполнить, если клик состоялся
[/IFCLICKED]
 
событие клика по кнопке
[IFNOTCLICKED]
действия списка событий, которые нужно выполнить, если клик не состоялся
[/IFNOTCLICKED]

Также возможно использовать совместно с с событием [REPEAT], чтобы вернуться, например, в начало списка событий, если предшествующий клик по кнопке состоялся или не состоялся

1
2
3
4
5
6
7
[REPEAT]
событие клика по кнопке
[IFNOTCLICKED]
действия списка событий, которые нужно выполнить, если клик не состоялся
[WAIT]:200
[/REPEAT]
[/IFNOTCLICKED]
[/REPEAT] вернет прогресс выполнения к [REPEAT] (максимальное количество возвратов выставляется в настройке функций и макросов (соответствующая кнопка на панели инструментов WBApp))




Передача текстовых переменных из Content Downloader в WBApp через текст ссылок






Решение возможных проблем

— Если, при парсинге из Content Downloader, WBApp ИНОГДА насовсем «зависает» (останавливая процесс парсинга) и находится в активных процессах системы (в диспетчере задач), то можно выставить максимальное время работы процесса wbapp.exe. Нажмите ctrl+h и в поле «завершить процесс через (МС)» выставьте нужное время, например — 60000 (60 секунд). Тогда каждый экземпляр WBApp будет закрываться принудительно через 60 секунд после его запуска и будет происходить повторная загрузка того-же элемента

— Если иногда WEB-страницы не догружаются или не загружаются вовсе, то увеличьте «тайм-аут проверки загрузки WEB-документа» в настройке запросов программы (нажать ctrl+h в Content Downloader). Убедитесь, что парсите в 1-2 потока (лучше в 1 поток, так как на каждый поток запускается отдельный Internet Explorer)

— Если вы парсите большое количество документов и они перестали загружаться (имеется ввиду парсинг нескольких десятков тысяч WEB-страниц, Internet Explorer просто не рассчитан на это), то необходимо перезапустить ПК


1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 6, средний балл: 5,00)

Загрузка...
Автор: admin, 9 марта 2014
Рубрики: Парсинг
Метки: , ,
30 комментариев к сообщению: “WBApp (только для ULTIMATE версий)”
  1. Сырго:

    Всем привет, если юзерагентов добавить и рабочих проксей + хайд со сменой айпи раз в минуту (или больше)+ ссылки на страницы с паузой входа 1000 мс (или больше), получится ли по тизерам покликать «аля инкогнито»? Понятно что вход будет не по ключу а по адресу…значит не жестить, а «разбавить», например %20 на 100% кликов дейли
    сорри за алчный коммент…

  2. Андрей:

    а антигейт можно подключать? очень надо=)

    • admin:

      Обновление с поддержкой Antigate планируется выпустить на днях. Ждите…

    • admin:

      Content Downloader X версии 10.90 (20.04.2014):

      — Доработан макрос шаблона вывода TOPRICE (теперь он обрабатывает цены, которые содержат в себе несколько точек или запятых, ранее он возвращал пустое значение) — Скажем спасибо господину Kagorec;
      — Несколько доработок.

      WBApp v 1.38

      — Добавлен функционал для распознавания капч (смотрите событие CAPCHA);
      — Добавлен макрос вставки первоначального URL (с которым был произведен запуск WBApp из Content Downloader) — [ORIGINALURL];
      — Добавлено событие [REFRESH] (обновить страницу);
      — Множество доработок.

  3. Евгений:

    Можно привести пример использования макроса [GETHTML], когда нужно вернуть часть кода? Попробовал сделать, как описано, но не получается.

    [GETHTML]:начало{get}конец|{get}

  4. Александр:

    Отличная программа, буду устанавливать.

  5. Клиент:

    Запишите, пожалуйста, видео с авторизацией через WBApp на сайте (желательно соц. сеть типа ОД, ВК, ФБ), а то в руководстве написано: «Действуем аналогично методу, указанному на этой странице http://sbfactory.ru/cd/?p=2132«, а у меня что-то не стыкуется тёплое с мягким.

  6. tremmer:

    Сергей, добрый день.
    Скажите, при вставке значений в текстовые поля их(значения) можно брать из локального файла?

    • admin:

      Здравствуйте.

      Да, например, когда вы вызаваете WBApp из шаблона вывода Content Downloader
      [WBAPP_F(C:\Users\Sila\Desktop\CDDATATEST2.wbapp[GETRESULT][ONETHREAD])][CDDATA:1]данные из файла берутся макросом <FILE=C:\Users\Sergey Zaykovskiy\Desktop\Файлы проектов\shops-urls.txt>[/CDDATA][/WBAPP_F]
      Смотрите выше Вызов WBApp из шаблона вывода Content Downloader при парсинге (с возможностью передачи множества текстовых данных)

      Если сильно надо вставлять данные из файла в WBApp, пишите, постараюсь сделать.

      И в комментариях тут лучше не писать, я их читаю редко. Лучше писать на форум.

      Спасибо!

      С уважением к вам, Сергей.

  7. Слава:

    Здравствуйте! Скажите пожалуйста,а можно ли например при публикации записей в wp (как в вашем видео примере)брать данные заголовка записи и данные текста записи из существующего файла csv на локальном диске, где несколько строчек и несколько колонок и каждая строчка — это одна запись, и две ячейки в строчке — заголовок и текст статьи. нужно брать для каждой записи из одной ячейки — заголовок, а из другой — текст.

  8. Александр:

    Доброй ночи! Можно ли при помощи WBApp спарсить базу такого сайта как miralinks ru или нужно пользоваться другой функцией Content Downloader

  9. Саша:

    WBApp поддерживает серфинг через прокси? В частности прокси с авторизацией и соксы?

  10. MAXiMUS:

    Приветствую.
    Подскажите пожалуйста как можно спарсить участников группы ВК, но не через страницу вк_ком_search? (т.к. здесь отображаются не полный перечень), а в сплывающем окне после клика на странице группы по ссылке «Участники».

  11. denis:

    Здравствуйте.Не подскажите — в WBApp есть возможность с имитировать клик по клавиатуре (стрелка — в право, в лево) на всплывающем окне, на котом WBApp не фиксирует — не видит ни одного элемента?

  12. denis:

    Смотрю тут — Имитация нажатий кнопок клавиатуры и мыши в WBApp есть список НО толи не правильно вставляю!? толи эта фича не работает… не понятно. Уважаемый админ проясните пожалуйста ситуацию (думаю многим будет интересно!)

  13. denis:

    Спасибо за оперативный ответ! Но всё же хоть примерно когда ожидать? (просто ОЧЕНЬ нужно…)

  14. denis:

    огромное СПАСИБО! то что нужно!

Написать комментарий

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

Последние статьи

css.php