AWS Lambda 用于 IP 轮换?

Div*_*oML 2 ip-address amazon-web-services web-scraping aws-lambda

我正在抓取一个网站,其中包含格式为root/page_number.html连续page_num整数的页面。如果我爬行太快,网站会阻止我,所以我认为使用 AWS Lambda 爬行是一个好主意,这样每次进行新函数调用时 IP 地址都会不断轮换。

然后我编写了每次只抓取 100 个页面的函数,以确保在具有不同 IP 地址的不同机器上生成许多并行任务。刚开始的时候效果还不错,但是爬了大约10万个页面之后还是被网站屏蔽了。这让我想知道:

  1. 是否保证每台机器的 IP 地址与同一区域中的另一台机器不同?
  2. 如果我正在运行大约 1000 个并发任务,它们最有可能在同一台计算机上还是不同的计算机上运行?
  3. 是否可以确保新启动的任务不会在已经运行另一个类似任务的同一台计算机上运行?

Mat*_*ans 7

大多数计算机通常不再在互联网上拥有自己的 IP 地址。

您的 lambda 将通过 NAT 网关与互联网进行通信。NAT 网关将拥有自己的公共 IP 地址,或者将通过某种拥有自己的公共 IP 的出口网关与互联网进行通信。

您正在通话的网站将看到来自与其连接的网关的公共 IP 的所有呼叫。如果您有 1000 个并发连接,它们都将来自(大致)相同的 IP,但端口不同。