Я не эксперт по скрапингу. У меня есть небольшой забавный проект на Python, собирающий данные с тщательно охраняемого веб-сайта, или так кажется, с использованием Tor, Privoxy и специального класса Python. Несмотря на некоторые предостережения, на данный момент это работает на удивление хорошо.
Есть одна вещь, которую я не понимаю. Почему все библиотеки и фрагменты, которые я видел, реализуют:
Мой подход заключается в том, чтобы просто выбрать User-Agent, отправить сигнал NEWNYM в Tor и очищать его до тех пор, пока сервер не выкинет меня (403 или аналогичный), а затем повторить действия с новым UA и IP. Это значительно превосходит вышеупомянутые методы с точки зрения скорости и надежности.
Вероятно, это не эксклюзивный вопрос Tor, но некоторые причины, по которым следует особенно внимательно относиться к Tor, включают тот факт, что существует ограниченное количество выходных узлов и нет никаких гарантий, что сигнал NEWNYM каждый раз предоставляет другой IP-адрес.
У меня был неоднозначный успех с бесплатными прокси, и эту тему мне еще предстоит глубоко изучить.
Что мне не хватает?
@Barmar Конечно, вопрос в том, насколько идея притвориться, что парсер является обычным пользователем, значительно более надежна в небольших сценариях.
Моя философия заключается в том, что если сайт не хочет, чтобы вы его парсили, вам не следует его парсить. Поэтому я не собираюсь тратить клетки мозга, пытаясь помочь вам.
@Бармар принял к сведению. Это не является противозаконным.
Я сказал нежелательно, а не незаконно. Они достаточно любезны, чтобы позволить вам использовать их веб-сайт, вы должны соблюдать их пожелания.
@Barmar И я вежливо говорю, что если ты не хочешь участвовать в этой теме, пожалуйста, прочитай лекцию кому-нибудь другому. Я не собираюсь монетизировать данные, это ничем не отличается от обычного просмотра, я не забрасываю сайт триллионами запросов и попутно учусь чему-то. Спасибо!
Выполнение 1 или 2 кажется ошибочным подходом, если веб-сайт не имеет функции обнаружения парсинга и позволяет без последствий делать триллион запросов с одного и того же IP. Каждый случай индивидуален, поэтому я просто сделаю то, что работает или требуется в вашей ситуации.
Изменение IP-адресов после такого большого количества запросов или такого большого количества времени может помочь избежать обнаружения, если веб-сайт заблокирует ваш IP-адрес после просмотра 1000 разных URL-адресов с одного и того же IP-адреса или просмотра более 60 страниц в минуту. Реализуя эти функции, они делают предположения о том, как веб-сайт может обрабатывать сканер, а также делают предположения о том, как вы используете их код (быстрый сканер или медленный сканер, много страниц или мало страниц и т. д.).
Я бы не стал слишком беспокоиться об этом и придерживался того, что работает для вашего варианта использования. Если не было необходимости часто менять IP-адреса, не делайте этого. Если они начнут вас блокировать, вам придется снова сменить тактику на ту, которая работает.
Веб-сайты реализуют ограничения скорости для каждого IP-адреса для борьбы со скрапингом. Если вы измените свой IP-адрес, вы обойдете это ограничение.