Парсим Яндекс без проблем

12 3
ukv
На сайте с 27.12.2006
Offline
111
ukv
3316

Не так давно Яндекс начал выдавать каптчу сразу после нескольких запросов, здесь активно это обсуждалось. На данях я нашел решение этой проблемы. Я использую самописный парсер, который проверяет пару десятков сайтов по примерно 600 запросам. Что я делаю:

  • использую примерно 10 разных IP (у меня просто зарегистрировано столько разных хостингов для размещение моей сетки сателлитов, беру дешевые хостинги);
  • с каждого IP по очереди запрашивается страница у Яндекса с нужным запросом, результаты сохраняются БД;
  • когда очередь подходит к первому IP из списка, парсер проверяет, прошло ли достаточно времени с момента предыдущего обращения, если нет, то делает паузу, пауза должна быть не фиксированной, а плавающей;
  • парсер следит, чтобы после проверки определенного количества запросов была «передышка»;
  • если какой-то IP поймал каптчу, то этот IP больше использоваться не должен; можно реализовать возможность вручную ввести каптчу для этого IP, я так сильно не заморачивался.

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

  • пауза, о которой шла речь выше: от 120 до 240 сек.;
  • «передышка» делается после 20-40 запросов;
  • время «передышки» 250-600 сек.

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

Почему не xml?

Я четно хотел быть «хорошим роботом», выделенные IP у меня есть, но, получив данные через xml на весь свой список и сравнив его с оригинальной выдачей, я был вынужден отказаться от xml, так как позиции там показывают что угодно, кроме оригинала, как я будут такие отчеты отправлять заказчикам?

Думаю, что SiteAuditor'у нужно тоже реализовать плавающий интервал, тогда их программой снова станет возможно пользоваться.

Будет интересно услышать ваши мнения и решения.

Spectre
На сайте с 26.09.2005
Offline
145
#1

Использую подобную систему уже несколько лет.

Все равно, при больших нагрузках, нужно много IP-адресов.

Приходится парсить не только Яндекс и XML, но и qip.ru (раньше еще и mail.ru)...

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

То что вы еще в топе, не ваша заслуга, а наша недоработка. (С) Платон Щукин.
NKostya
На сайте с 29.03.2008
Offline
23
#2

Что-то вы не так делаете. Мы парсим с 6 IP порядка 5691 запрос (больше пока не требовалось). И проблем не возникает. При этом есть запас прочности.

Spectre правильно говорит, что нужно имитировать поведение пользователя.

Spectre а сколько запросов парсите вы, что у вас и XML и qip испольщзется?

Spectre
На сайте с 26.09.2005
Offline
145
#3

Сколько запросов - не скажу. IP-адресов используются десятки. Это даст примерное понимания порядка. Точнее не знаю.

Имитация живого человека дает в результате невысокое качество использования IP. :(

Ибо если предположить среднюю частоту обращений раз в минуту и вычесть "апдейтное время", когда выдача может "скакать" (с полуночи до 7 утра), то получится всего 17*60 то есть 1020 запросов в сутки. То же что и XML.

Добавляем еще XML и qip.ru - получаем возможность парсить 3000 запросов с некоторыми оговорками...

Abramovich
На сайте с 16.09.2009
Offline
42
#4

ukv, Здорова Костян, приятно увидится)

NP
На сайте с 09.08.2006
Offline
72
#5
Spectre:
Сколько запросов - не скажу. IP-адресов используются десятки. Это даст примерное понимания порядка. Точнее не знаю.

Имитация живого человека дает в результате невысокое качество использования IP. :(

Кстати, парсить выдачу по обычным запросам и делать пробивку по индексации - разные вещи.

Используем более 30 IP, в результате при пробивке по индексации получается при подключенных cookies получить без проблем около 3000 ответов, далее капча через раз, а то и подряд идет.

При отключенных cookies капча отдается гораздо быстрее (примерно после 5-6 запроса на каждый IP).

На самом деле все еще и от IP адреса зависит. Если в подсети ваших IP сидят реальные люди, то капча выдается гораздо реже.

WhiteFalke
На сайте с 16.09.2007
Offline
184
#6

Использую 1 IP, парсю в 5 потоков с задержкой 0 секунд, и все в шоколаде :) PosMan :)

Для начала приходится около 200 капч вбить, но после этого все норм хоть упроверяйся.

NP
На сайте с 09.08.2006
Offline
72
#7
WhiteFalke:
Использую 1 IP, парсю в 5 потоков с задержкой 0 секунд, и все в шоколаде :) PosMan :)
Для начала приходится около 200 капч вбить, но после этого все норм хоть упроверяйся.

И сколько получается сделать запросов за сутки по максимуму?

юни
На сайте с 01.11.2005
Offline
902
#8

Два простых совета: 1) ip должны быть из разных подсетей, и 2) интервал между запросами с одного ip желательно оставлять в пределах 4 секунд и больше.

Если вы даёте большую нагрузку (5 и более запросов в секунду, круглосуточно и без пауз), то эти ограничения уже не помогают, у ПС подключаются антиддос-механизмы.

https://a-parser.com/ - парсер для профессионалов SEO, маркетологов, арбитражников и SaaS, https://searchengines.guru/ru/forum/944108 - прокси-сервис на базе операторов домашнего интернета, сотни тысяч IP-адресов, канал от 20 Мбит
WhiteFalke
На сайте с 16.09.2007
Offline
184
#9
NovaPS:
И сколько получается сделать запросов за сутки по максимуму?

Я не засекал максимум (у меня не много запросов, около 500 от силы), если брать другую их программу на проверку индексации ссылок, за сутки чикал и по 10000 ссылок без проблем.

NP
На сайте с 09.08.2006
Offline
72
#10
WhiteFalke:
Я не засекал максимум (у меня не много запросов, около 500 от силы), если брать другую их программу на проверку индексации ссылок, за сутки чикал и по 10000 ссылок без проблем.

А что за "другую их программу"? Можно подробнее :)

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий