Распознавание капчи, отправка текста капчи и получение ответных cookies (с использованием WBApp) при парсинге контента

Если парсить контент через библиотеку Internet Explorer (DOM) (ctrl+h), то для автоввода капч достаточно лишь прописать в проект WBApp группу макросов [CAPCHA] (смотрите видео распознавание текста капчи с помощью сервиса Antigate на этой странице http://sbfactory.ru/cd/?p=1515). В этом случае, группа макросов [CAPCHA] сама проверяет наличие капчи на странице и устанавливает в Internet Explorer нужные cookies.

Но если же мы парсим контент с использованием библиотек Indy или Clever Internet Suite (ctrl+h), которые не имеют отношения к Internet Explorer (это GET-запросы программы Content Downloader), техника обхода капчи должна быть примерно такой:
1) Проверка появления капчи макросом шаблона вывода [CHECKENTRY];
2) Вызов нужного проекта WBApp (Internet Explorer (DOM)) из шаблона вывода Content Downloader макросом [WBAPP] для распознавания капчи и получения ответных cookies обратно в Content Downloader.


1) Проверка появления капчи макросом шаблона вывода [CHECKENTRY]:

В шаблон вывода Content Downloader добавляем примерно следующую конструкцию:

1
[CHECKENTRY(img src="capcha.jpg" alt="введите текст с картинки")][DOCSOURCE][THENTEXT][WBAPP(C:\Anticapcha.wbapp|<CD_DOCURL!>[ONETHREAD])][/WBAPP][RELOADDOCUMENT][/CHECKENTRY]

Данная конструкция проверит — есть ли на странице капча и выполнит вызов WBApp (если капча присутствует). Поясняю: макрос CHECKENTRY проверяет наличие текста img src=»capcha.jpg» alt=»введите текст с картинки» в коде WEB-документа (макрос [DOCSOURCE] выводит код всего WEB-документа, который мы парсим). Если текст, характеризующий наличие капчи присутствует в [DOCSOURCE], то выполняется запуск проекта WBApp и макроса [RELOADDOCUMENT] (этот макрос произведет перезагрузку документа после получения ответных cookies).

Обратите внимание на наличие параметра [ONETHREAD] в макросе [WBAPP]. Он запретит многопотончый запуск WBApp, что важно при работе с антикапчей.


2) Вызов нужного проекта WBApp (Internet Explorer (DOM)) из шаблона вывода Content Downloader макросом [WBAPP] для распознавания капчи и получения ответных cookies обратно в Content Downloader:
В пункте 1 мы видели C:\Anticapcha.wbapp — это путь к проекту WBApp, который и будет распознавать и отправлять текст с капчи + возвращать полученные Cookies в Content Downloader. Смотрим http://sbfactory.ru/cd/?p=1515 (Распознавание текста капчи с помощью сервиса Antigate) для того, чтобы составить группу макросов распознавания и отправки текста.

Для того, чтобы вернуть в Content Downloader Cookies из WBApp, вставьте в конец списка событий WBApp макрос [GETCOOKIES_EX]. После такого вызова WBApp, cookies из Internet Explorer должны автоматически вставиться в настройку HTTP-запросов Content Downloader (ctrl+h).

Примите к сведению

Примите к сведению

ВАЖНОЕ ПРИМЕЧАНИЕ: Если, когда сайт выдает капчу, страница не загружается, то вместо использования [CHECKENTRY] в шаблоне вывода, поместите макрос [WBAPP] (например, [WBAPP(C:\Anticapcha.wbapp|)][/WBAPP][RELOADDOCUMENT]) не в шаблон вывода, а в: вкладка «контент» — группа «парсинг и обработка» — кнопка AUTO -> кнопка «если WEB-документ не загрузится». В этом случае, при неудачной попытке загрузки WEB-страницы (когда вылетела капча), Content Downloader вместо шаблона вывода запустит то, что мы вставили в «если WEB-документ не загрузится» — макрос WBAPP для отправки текста с капчи.

Желаем вам успехов!

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 2, средний балл: 5,00)
Загрузка...
Автор: admin, 4 июля 2014
Рубрики: Парсинг
Метки: ,

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

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

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

css.php