0

我正在使用 scrapy 抓取一些大品牌来为我的网站导入销售数据。目前我正在使用

DOWNLOAD_DELAY = 1.5

CONCURRENT_REQUESTS_PER_DOMAIN = 16

CONCURRENT_REQUESTS_PER_IP = 16

我正在使用 Item loader 指定 css/xpath 规则和 Pipeline 将数据写入 csv。我收集的数据是原价、售价、颜色、尺寸、名称、图片网址和品牌。

我只为一个拥有大约 10k url 的商家编写了蜘蛛,我花了大约 4 个小时。

我的问题是,对于 10k url,4 小时听起来还不错,还是应该比这更快。如果是这样,我还需要做什么来加快速度。

我只在本地使用一个 SPLASH 实例进行测试。但在生产中,我计划使用 3 个 SPLASH 实例。

现在主要问题是,我有大约 125 个商家,每个商家平均有 10k 产品。他们中的几个有超过 150k 的网址要抓取。

我需要每晚抓取他们所有的数据来更新我的网站。由于我的单个蜘蛛需要 4 个小时才能抓取 10k 网址,我想知道每晚实现 125 x 10k 网址是否是一个有效的梦想

我将非常感谢您对我的问题的经验丰富的意见。

4

1 回答 1

5

您的 DOWNLOAD_DELAY 是按 IP 强制执行的,因此如果只有 1 个 IP,那么 10,000 个请求将需要 15000 秒 (10,000 * 1.5)。也就是4个多小时。所以是的,这是正确的。

如果您要抓取多个站点,那么它们将是不同的 IP 地址,因此它们应该或多或少地并行运行,因此仍需要 4 小时左右。

如果您正在抓取 125 个站点,那么您可能会在某个时候遇到不同的瓶颈。

于 2017-10-24T12:58:36.700 回答