可以使用VM /机器IP代替Scrapy的代理服务器

时间:2018-12-06 06:38:08

标签: python scrapy web-crawler

我有一个Scrapy搜寻器,我想旋转IP,因此不会阻止我的应用程序。我正在使用request.meta['proxy'] = 'http://51.161.82.60:80'设置IP,但这是VM的IP。我的问题是VM或Machine的IP可以用于抓取还是我需要代理服务器?

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

获得自己的IP的原因是因为您的VM是“透明的”。您将需要在VM上拦截您的请求,删除诸如X-Forwarded-For之类的跟踪标头,并且服务器在从要爬网的网站收到响应时必须知道谁响应。

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