Быть хорошим гражданином и веб-скребком - PullRequest
6 голосов
/ 17 декабря 2011

У меня есть вопрос из двух частей.

Во-первых, я пишу веб-скребок, основанный на пауке CrawlSpider в Scrapy.Я стремлюсь очистить веб-сайт, на котором есть тысячи записей (возможно, сотни тысяч).Эти записи скрыты в 2-3 слоя от стартовой страницы.Таким образом, в основном я запускаю паука на определенной странице, сканирую, пока не находит определенный тип записи, а затем анализирую HTML.Что мне интересно, так это то, какие существуют методы, позволяющие моему пауку не перегружать сайт?Возможно, есть способ сделать что-то пошаговое или поставить паузу между различными запросами?

Во-вторых, и связан ли он с Scrapy, чтобы проверить сканер без чрезмерного стресса на сайте?Я знаю, что вы можете убить программу во время ее работы, но есть ли способ заставить скрипт остановиться после нажатия чего-то вроде первой страницы, на которой есть информация, которую я хочу почистить?

Любые советы или ресурсы будут очень полезныоценили.

Ответы [ 2 ]

6 голосов
/ 17 декабря 2011

Возможно, есть способ сделать что-то пошагово

Я использую возможность кэширования Scrapy, чтобы постепенно чистить сайт

HTTPCACHE_ENABLED = True

Или вы можете использовать новую функцию 0.14 Задания: приостановить и возобновить сканирование

или поставить паузу между различными запросами?

проверьте эти настройки:

DOWNLOAD_DELAY    
RANDOMIZE_DOWNLOAD_DELAY

Есть ли способ с помощью Scrapy для проверки сканера без чрезмерной нагрузки на сайт?

Можно попробовать и отладитьваш код в оболочке Scrapy

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

Кроме того, вы можете в любое время позвонить scrapy.shell.inspect_response вашему пауку.

Любой советили ресурсы будут с благодарностью.

Документация Scrapyлучший ресурс.

0 голосов
/ 17 декабря 2011

Вы должны начать ползать и регистрировать все.Если вас забанят, вы можете добавить sleep () перед запросом страниц.

Смена User-Agent также является хорошей практикой (http://www.user -agents.org / http://www.useragentstring.com/)

Если вы забанены ip, используйте прокси, чтобы обойти его.Приветствия.

...