在 Scrapy 中使用代理提供商

问题描述 投票:0回答:1

Scrapy 中“CONCURRENT_REQUESTS_PER_IP”设置的目的是什么?它如何与“CONCURRENT_REQUESTS”一起使用?

我正在使用代理提供商来处理代理轮换。如果我将“CONCURRENT_REQUESTS_PER_IP”设置为 10,它会将代理提供商分配的每个 IP 的请求限制为 10 个,还是 Scrapy 会以不同的方式对待这些 IP?

谢谢!

我的睾丸场景是这样的:

如果我的代理提供商提供 75 个 IP,并且我配置 CONCURRENT_REQUESTS_PER_IP = 5 以及 CONCURRENT_REQUESTS = 150,这是否意味着 150 个并发请求的全局上限将覆盖 CONCURRENT_REQUESTS_PER_IP 设置?具体来说,Scrapy 是否会分配请求,使每个 IP 限制为大约 2 个并发请求(总共 150 个 ÷ 75 个 IP),还是会优先达到每个 IP 的 CONCURRENT_REQUESTS_PER_IP 限制,直到达到全局上限?

scrapy
1个回答
0
投票

CONCURRENT_REQUESTS
定义了Scrapy下载器将执行的并发(即同时)请求的最大数量。如果将其设置为非零数字
n
,则最多可以同时执行
n
个请求。

当你执行请求时,你必须有一个

target
域名或ip,就像你坐公交车直奔你的
target
一样。如果使用代理,就像您乘坐公共汽车
A
到车站,然后转乘公共汽车
B
target

CONCURRENT_REQUESTS_PER_IP
CONCURRENT_REQUESTS_PER_DOMAIN
定义了与
CONCURRENT_REQUESTS
相同的限制,但它用于
target
的ip或域,与传输无关(即您正在使用的代理,这就是方式)你就到达了
target
)。这三个设置的更改不会影响代理(及其提供者)。它们仅影响
target
服务器。

CONCURRENT_REQUESTS_PER_IP
设置为非零数字
n
时,
CONCURRENT_REQUESTS_PER_DOMAIN
会被scrapy忽略。
CONCURRENT_REQUESTS
设置为非零数字
m
并且
CONCURRENT_REQUESTS_PER_IP
CONCURRENT_REQUESTS_PER_IP
设置为非零数字
n
时,总共最多可以同时执行
m
个请求。如果您的 scrapy 蜘蛛中有多个
target
,则每个
n
不能同时执行超过
target
个请求。

© www.soinside.com 2019 - 2024. All rights reserved.