做一个好公民和网络抓

use*_*057 6 python screen-scraping scrapy

我有两个问题.

首先,我正在写一个基于Scrapy中的CrawlSpider蜘蛛的web-scraper .我的目标是抓住一个拥有数千个(可能达到数十万)记录的网站.这些记录从起始页面向下埋藏2-3层.所以基本上我在某个页面上有蜘蛛启动,爬行直到找到特定类型的记录,然后解析html.我想知道是什么方法来防止我的蜘蛛超载网站?是否有可能以渐进方式执行操作或在不同请求之间暂停?

第二,相关的是,是否有一种Scrapy方法可以测试爬行器而不会对站点施加过度的压力?我知道你可以在程序运行时终止程序,但有没有办法让脚本在遇到像我想要抓取的信息的第一页之类的东西后停止?

任何建议或资源将不胜感激.

rec*_*dev 6

有没有办法逐步做事

我正在使用Scrapy缓存功能来逐步抓取网站

HTTPCACHE_ENABLED = True

或者您可以使用新的0.14功能作业:暂停和恢复爬网

或者在不同的请求之间暂停一下?

检查此设置:

DOWNLOAD_DELAY    
RANDOMIZE_DOWNLOAD_DELAY
Run Code Online (Sandbox Code Playgroud)

是否有一种Scrapy方法来测试爬行器而不会对站点施加过度的压力?

您可以在Scrapy shell中尝试调试代码

我知道你可以在程序运行时终止程序,但有没有办法让脚本在遇到像我想要抓取的信息的第一页之类的东西后停止?

此外,您可以随时在蜘蛛中调用scrapy.shell.inspect_response.

任何建议或资源将不胜感激.

Scrapy文档是最好的资源.