1

我试图使用 Privoxy 和 Tor 来轮换我的 IP 地址,以便在不被 IP 禁止的情况下抓取网站。

所以我安装了 Tor,sudo apt intall tor然后修改了/etc/tor/torrc启用这些行的文件:

SocksPort 9050
ControlPort 9051
HashedControlPassword 16:A...
CookieAuthentication 1

Privoxy 相同sudo apt install privoxy,然后sudo vim /etc/privoxy/config我添加了forward-socks5 / 127.0.0.1:9050 .

然后,按照这篇文章,我创建了一个 rotate.py 文件,它将每隔几分钟轮换一次我的 IP 地址。它看起来像这样:

import time
from stem import Signal
from stem.control import Controller
def main():
    while True:
        time.sleep(60*10)
        print ("Rotating IP")
        with Controller.from_port(port = 9051) as controller:
          controller.authenticate(password='mylovelypassword')
          controller.signal(Signal.NEWNYM)
if __name__ == '__main__':
    main()

另一方面,我执行 python POST 请求来获取我需要的数据,它看起来像这样:

final_cookie = get_cookies()

url_base = 'http://...'

url_string = '...'

headers = {
...

    "User-Agent": """Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"""
}

proxies = {"http": "127.0.0.1:8118"}

data = requests.post(url_base, headers=headers, data=url_string, verify=False, proxies=proxies)

所以我首先运行rotate.py脚本,然后运行我的爬虫来执行这些 POST 请求。问题是我status code: 503每次都得到。如果我只是做一个普通的请求,data = requests.post(url_base, headers=headers, data=url_string, verify=False)它实际上会得到数据(200响应),但是在一定数量的请求后它会被阻塞。

那么是什么原因导致我的 Privoxy-Tor 设置只是收到 503 错误响应?与服务配置有关吗?我将非常感谢任何建议/提示:)干杯!

4

0 回答 0