我有一个由两部分组成的问题。在
首先,我正在编写一个基于Scrapy中的CrawlSpider蜘蛛的web scraper。我的目标是抓取一个网站,有成千上万(可能变成几十万)的记录。这些记录从起始页往下埋了2-3层。所以基本上我让spider从某个页面开始,爬网直到找到特定类型的记录,然后解析html。我想知道的是,有什么方法可以防止我的蜘蛛超载网站?有没有一种方法可以增量地完成任务或者在不同的请求之间暂停?在
第二,与之相关的是,有没有一种方法可以使用Scrapy来测试爬虫,而不会对站点施加过大的压力?我知道你可以在程序运行时终止它,但是有没有一种方法可以让脚本在碰到像第一页这样包含我想要获取的信息的页面之后停止运行呢?在
任何建议或资源将不胜感激。在
我正在使用Scrapy缓存功能来增量地抓取站点
HTTPCACHE_ENABLED = True
或者您可以使用新的0.14特性Jobs: pausing and resuming crawls
检查此设置:
您可以尝试在Scrapy shell中调试代码
另外,您可以在spider中随时调用scrapy.shell.inspect_response。在
垃圾文件是最好的资源。在
你必须开始爬行并记录所有的事情。如果您被禁止,您可以在页面请求之前添加sleep()。在
改变用户代理也是一个很好的实践(http://www.user-agents.org/http://www.useragentstring.com/)
如果你被ip禁止,使用代理来绕过它。干杯。在
相关问题 更多 >
编程相关推荐