当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哪些网址不应该访问?
答案 0 :(得分:3)
当scrapy停止时,它会将已爬网的URLS指纹保存在request.seen文件中。这是通过用于对URL进行两次爬网的重复数据删除类来完成的,但是重新启动具有相同作业目录的刮刀,它将不会抓取已经看过的URL。 如果要控制此过程,可以自行替换默认的重复数据删除类。 另一种解决方案是添加您自己的spidermiddleware
答案 1 :(得分:0)
Scrapy的Jobs功能可让您启动和暂停蜘蛛。您可以在两次运行之间保留有关爬虫的信息,并且在重新启动时它将自动跳过重复的请求。
有关更多信息,请参见此处:Jobs: pausing and resuming crawls