3

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

当前功能:

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

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

4

2 回答 2

3

当 scrapy 停止时,它会将抓取的 URLS 指纹保存在 request.seen 文件中。这是由 dedup 类完成的,该类用于抓取 url 两次,但是如果您重新启动具有相同作业目录的抓取工具,它将不会抓取已经看到的 url。如果您想控制此过程,您可以自己替换默认的 dedup 类。另一种解决方案是添加您自己的蜘蛛中间件

于 2012-11-28T10:29:58.037 回答
0

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

有关更多信息,请参见此处:作业:暂停和恢复爬网

于 2018-08-22T14:14:48.590 回答