我使用Polipo和Tor在Ubuntu 18.04.3。上使用Scrapy lib进行抓取。
在torrc
设置中,MaxCircuitDirtiness
设置为20
秒,SOCKSPort
设置为9050
端口。
在Polipo config
文件中,它设置为socksParentProxy = localhost:9050
,默认情况下,您知道监听端口为8123
。
现在,当我使用TOR测试IP地址时:
user@machine:~$ curl --proxy socks5h://localhost:9050 http://ipinfo.io/ip
每20秒运行一次此命令,IP就会更改。 使用Polipo:
user@machine:~$ curl --proxy 127.0.0.1:8123 ipinfo.io/ip
大约20分钟内IP不变。
我遵循了此topic的示例。
然后,我在HTTPTunnelPort 9080
文件的末尾写了torrc
并重新启动服务。
现在,当我使用命令sudo netstat -tpln | grep tor
检查时,我得到了
tcp 0 0 127.0.0.1:9080 0.0.0.0:* LISTEN 24761/tor
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 24761/tor
所以端口9080
显然是打开的。
现在有三个问题:
curl --proxy 127.0.0.1:9080 ipinfo.io/ip
不返回任何内容,而curl --proxytunnel 127.0.0.1:9080 ipinfo.io/ip
。HTTP_PROXY=127.0.0.1:9080
时,它将无法工作并返回错误消息[scrapy.spidermiddlewares.httperror] INFO: Ignoring response <405 http://checkip.dyndns.org/>: HTTP status code is not handled or not allowed
。我不明白,因为据说目的是建立HTTP连接。curl --proxytunnel 127.0.0.1:9080 ipinfo.io/ip
,即所谓的HTTPTunnelPort 9080
,不允许按照设置MaxCircuitDirtiness 20
的要求每20秒旋转IP地址。所以我坚持主要的问题。