请帮我解决以下情况:
想象一个典型的分类类别页面。包含项目列表的页面。当您点击您登陆内部页面的项目时。现在我的爬虫抓取所有这些 URL,进一步抓取这些 url 以获取项目的详细信息,检查初始种子 URL 是否为任何下一页。如果有,它会转到下一页并执行相同的操作。我将这些项目存储在 sql 数据库中。
假设 3 天后,种子 URL 中有新项目,我只想废弃新项目。可能的解决方案是:
在抓取每个项目时,我会检查数据库以查看 URL 是否已被抓取。如果有,我只是要求 Scrapy 停止进一步爬行。问题:我不想每次都查询数据库。我的数据库将非常大,最终会使爬网变得超级慢。
我尝试存储最后抓取的 URL 并在开始时将其传递,当它找到这个 last_scraped_url 时,它只会停止爬虫。不可能,因为抓取 URL 的异步特性不会按照从种子 URL 接收到的顺序进行抓取。(我尝试了所有方法让它有条不紊地进行——但这根本不可能)
任何人都可以提出任何其他想法吗?在过去的三天里,我一直在为此苦苦挣扎。
感谢您的回复。