Форум сайта python.su
Всем привет,
Использую Grab Spider для парсинга сайта, работу с капчой хотел отложить напоследок, но чем больше становится парсер и чем годубже он лезет в структуру ресурса, тем чаще вылетает капча (reCaptcha). Алгоритм я вижу так:
1 паук на основе initial_urls запускает task_initial для каждого url
2 далее, task_initial собирает данные со страницы и создает свои собственные таски, которые создают свои и т.д.
3 на каждом из уровней может случиться капча, поэтому проверяем ответ на наличие формы с капчой.
4 если требуется капча, то приостанавливаем паука, вырезаем картинку с капчей и отправляем ее пользователю
5 после ввода капчи пользователем, возобновляем работу паука с того же места.
Сейчас мне не понятны два последних пункта. На текущий момент, я делаю провекру на капчу, если она есть в ответе, то вырезаю картинку, но как отправить результат пользователю так, как я описал в п. 4? Как заставить паука ожидать ответа?
Спасибо.
Отредактировано KsimMiloff (Авг. 4, 2015 11:33:47)
Офлайн
https://github.com/lorien/captcha_solver
Может поможет.
Офлайн
по-моему это совсем не то
Офлайн
KsimMiloffЧто вообще подразумевается под “отправить результат пользователю”? Отобразить капчу? Если да, то есть много вариантов, например, самый простой - сохранить картинку и затем открыть папку с ней или открыть капчу с помощью какой либо программы(браузер, вьювер картинок). Посложнее, создать окно с помощью какой-либо из gui-библиотек(pyqt, tkinter, gtk) в котором будет капча и поле ввода.
4 если требуется капча, то приостанавливаем паука, вырезаем картинку с капчей и отправляем ее пользователю
5 после ввода капчи пользователем, возобновляем работу паука с того же места.
Сейчас мне не понятны два последних пункта. На текущий момент, я делаю провекру на капчу, если она есть в ответе, то вырезаю картинку, но как отправить результат пользователю так, как я описал в п. 4? Как заставить паука ожидать ответа?
KsimMiloff
по-моему это совсем не то
Офлайн
Да, вы правы, при повторном расмотрении выглядит как то, что нужно. С первого раза не осилил .
Спасибо.
Офлайн