能否使用VM /机器IP代替代理服务器用于Scrapy?

2024-06-01 01:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个刮擦爬虫,我想旋转IP,这样我的应用程序将不会被阻止。我正在使用request.meta['proxy'] = 'http://51.161.82.60:80'在scrapy中设置IP,但这是VM的IP。我的问题是虚拟机或机器的IP可以用于scrapy或我需要一个代理服务器

目前我正在这样做。这不会引发任何错误,但当我从http://checkip.dyndns.org得到响应时,我在meta中设置的是我自己的IP not updated IP。这就是为什么我想知道我是否需要代理服务器


Tags: orgip机器应用程序httprequest错误vm
2条回答

当然你需要一个代理服务器。元数据只是http请求中的一个字段。服务器端仍然知道真正从tcp连接层连接的公共ip

你得到你自己的IP的原因是因为你的虚拟机是“透明的”。您需要在VM上截获您的请求,删除跟踪头,例如X-Forwarded-For,并且您的服务器必须知道当它从您正在爬网的网站接收到响应时要响应谁

不过,最简单的解决方案是在VM上安装代理服务,例如Squid,然后设置forwarded_for off,使其成为匿名代理服务器。可能还有其他请求选项需要调整,以使其真正匿名。记住用http_access allow specialIPacl specialIP src x.x.x.x/etc/squid/squid.conf中保护白名单上的IP地址。Squid的默认端口是3128

相关问题 更多 >