优化抓取网站的工人数量
Optimizing number of workers scraping a website
我有兴趣定期抓取一个包含约 1 亿个项目的特定网站。爬虫可以非常快速地下载和处理项目,大约 50 毫秒,但即使以这种速度也需要几天才能完成。
显而易见的解决方案是使用多个抓取工具。然而,在某些时候,底层的 web 服务会变得饱和,并开始变慢。我想尊重服务而不是 DDoS,同时尽可能高效地抓取。
这显然是一个优化问题,但我不确定如何对其进行建模。理想情况下,我需要知道抓取器的数量,以及每个抓取器的目标延迟时间。有什么想法吗?
您可以尝试 URL frontier approach 进行抓取。
有一个名为 Frontera 的 Python 库实现了相同的方法。
免责声明:我不是 endorsing/advertising Frontera,也不以任何方式与之相关。
我有兴趣定期抓取一个包含约 1 亿个项目的特定网站。爬虫可以非常快速地下载和处理项目,大约 50 毫秒,但即使以这种速度也需要几天才能完成。
显而易见的解决方案是使用多个抓取工具。然而,在某些时候,底层的 web 服务会变得饱和,并开始变慢。我想尊重服务而不是 DDoS,同时尽可能高效地抓取。
这显然是一个优化问题,但我不确定如何对其进行建模。理想情况下,我需要知道抓取器的数量,以及每个抓取器的目标延迟时间。有什么想法吗?
您可以尝试 URL frontier approach 进行抓取。
有一个名为 Frontera 的 Python 库实现了相同的方法。
免责声明:我不是 endorsing/advertising Frontera,也不以任何方式与之相关。