Skip to main content
 首页 » 编程设计

python之抓取和监控 +1000 个网站

2025年05月04日10think

我需要帮助来定义一个工具的架构,该工具将每天抓取 1000 多个大型网站以获取新的更新。

我打算在这个项目中使用 Scrapy:

  • 考虑到 Scrapy 需要为每个网站创建一个项目,我如何处理 1000 多个网站的抓取并在一个项目中使用 Scrapy 存储数据?我尝试添加项目生成器,但这是个好主意吗?
  • 如何判断网站是否更新了新内容以便我可以再次抓取它?

谢谢!

请您参考如下方法:

Scrapy 是这个项目的绝佳选择。查看documentation on broad crawls有关抓取许多(数百万)网站的一些具体建议,但只有 1000 个网站,它就不那么重要了。你应该只使用一个项目和一个蜘蛛——不要生成项目!要么不定义 allowed_domains属性,或确保它仅限于当前正在抓取的域集。您可能想要拆分域,以便每个进程只抓取一个子集,从而允许您并行抓取。

您的蜘蛛将需要跟踪当前域内的所有链接,这里是 an example跟踪所有链接的蜘蛛,以防有帮助。我不确定您要对原始 html 进行哪些处理。您可能希望限制每个站点的深度或页面数量(例如 using depth middleware)。

关于重新访问网站,请参阅 delatafetch middleware作为如何处理仅获取新 URL 的示例。也许您可以从它开始并对其进行自定义。