是否可以按与它们关联的日期来抓取链接?我正在尝试实施一个日常运行的蜘蛛程序,将文章信息保存到数据库中,但是我不想重新抓取我之前已经抓过的文章(即昨天的文章)。我遇到了this这样的帖子,问了同样的事情,并提出了scrapy-deltafetch plugin的建议。

但是,这依赖于对照存储在数据库中的先前保存的request fingerprints检查新请求。我假设如果每天进行一段时间的抓取,那么数据库上将需要大量内存开销来存储已经被抓取的请求指纹。

因此,考虑到cnn.com这样的网站上的文章列表,我想抓取今天6/14/17发布的所有文章,但是一旦抓取器点击了后来列出的日期为6/13/17的文章,我想关闭蜘蛛并停止刮擦。这种方法可能会很容易吗?给定文章页面,CrawlSpider会从页面顶部开始并按顺序刮文章吗?

Scrapy的新手,所以不确定要尝试什么。任何帮助将不胜感激,谢谢!

最佳答案

我使用datetime.strptime(Item['dateinfo'], "%b-%d-%Y")根据有关项目的信息拼凑了一个日期。

之后,我只需对照设置中的已配置年龄对其进行检查即可,每次调用都可以覆盖该年龄。当发现年龄太长时,可以发出closespider异常,也可以在其他任何代码中设置完成标志并对其执行操作。

无需记住任何东西。我在每天跑步的蜘蛛上使用它,并且只设置了24小时年龄限制。

关于python - Scrapy-按日期抓取链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44554790/

10-13 06:35