如何编写scrapy规则来添加访问的URL

时间:2012-11-28 03:20:11

标签: python scrapy web-crawler

当scrapy关闭时,它会忘记所有网址。我想给scrapy一组已经被抓取的网址,当它开始时。 如何向crawlspider添加规则以让它知道访问过哪些网址?

当前功能:

SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)

只需使用解析告诉蜘蛛抓取哪个网址。 我怎么能告诉scrapy哪些网址不应该访问?

2 个答案:

答案 0 :(得分:3)

当scrapy停止时,它会将已爬网的URLS指纹保存在request.seen文件中。这是通过用于对URL进行两次爬网的重复数据删除类来完成的,但是重新启动具有相同作业目录的刮刀,它将不会抓取已经看过的URL。 如果要控制此过程,可以自行替换默认的重复数据删除类。 另一种解决方案是添加您自己的spidermiddleware

答案 1 :(得分:0)

Scrapy的Jobs功能可让您启动和暂停蜘蛛。您可以在两次运行之间保留有关爬虫的信息,并且在重新启动时它将自动跳过重复的请求。

有关更多信息,请参见此处:Jobs: pausing and resuming crawls