做一个好公民和网络垃圾

2024-04-20 04:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由两部分组成的问题。在

首先,我正在编写一个基于Scrapy中的CrawlSpider蜘蛛的web scraper。我的目标是抓取一个网站,有成千上万(可能变成几十万)的记录。这些记录从起始页往下埋了2-3层。所以基本上我让spider从某个页面开始,爬网直到找到特定类型的记录,然后解析html。我想知道的是,有什么方法可以防止我的蜘蛛超载网站?有没有一种方法可以增量地完成任务或者在不同的请求之间暂停?在

第二,与之相关的是,有没有一种方法可以使用Scrapy来测试爬虫,而不会对站点施加过大的压力?我知道你可以在程序运行时终止它,但是有没有一种方法可以让脚本在碰到像第一页这样包含我想要获取的信息的页面之后停止运行呢?在

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


Tags: 方法web类型目标网站html记录页面
2条回答

Is there possibly a way to do thing's incrementally

我正在使用Scrapy缓存功能来增量地抓取站点

HTTPCACHE_ENABLED = True

或者您可以使用新的0.14特性Jobs: pausing and resuming crawls

or put a pause in between different requests?

检查此设置:

DOWNLOAD_DELAY    
RANDOMIZE_DOWNLOAD_DELAY

is there a method with Scrapy to test a crawler without placing undue stress on a site?

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

I know you can kill the program while it runs, but is there a way to make the script stop after hitting something like the first page that has the information I want to scrape?

另外,您可以在spider中随时调用scrapy.shell.inspect_response。在

Any advice or resources would be greatly appreciated.

垃圾文件是最好的资源。在

你必须开始爬行并记录所有的事情。如果您被禁止,您可以在页面请求之前添加sleep()。在

改变用户代理也是一个很好的实践(http://www.user-agents.org/http://www.useragentstring.com/

如果你被ip禁止,使用代理来绕过它。干杯。在

相关问题 更多 >