在 python 中使用 urllib2 和 Tor 拒绝连接

Posted

技术标签:

【中文标题】在 python 中使用 urllib2 和 Tor 拒绝连接【英文标题】:Connection refused using urllib2 and Tor in python 【发布时间】:2012-12-04 05:22:18 【问题描述】:

我对 python 很陌生。我正在尝试为我正在从事的项目编写一个非常简单的网络爬虫。在此过程中,我尝试使用 Tor 更改我的 IP 地址,这样我就不会与我正在抓取的服务断开连接。在将其添加到我的项目之前,我试图测试特定于获取新 IP 的代码。这是我正在测试的代码。

from TorCtl import TorCtl
import urllib2

for i in range(1,51):
    proxy_support = urllib2.ProxyHandler("http" : "127.0.0.1:8118" )
    opener = urllib2.build_opener(proxy_support)
    opener.addheaders = [('User-agent', 'Mozilla/5.0')]
    urllib2.install_opener(opener)

    print "IP " + str(i) + ":"
    print urllib2.urlopen('http://ifconfig.me/ip').read()

    conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="torPass")
    conn.sendAndRecv('signal newnymrn')
    conn.close()

当我这样做时,我收到以下错误:

IP 1:Traceback(最近一次调用最后一次):文件“scrapingTools.py”, 第 86 行,在 main() 文件“scrapingTools.py”,第 76 行,在 main 打印 urllib2.urlopen('http://ifconfig.me/ip').read() 文件 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 126 行,在 urlopen 返回_opener.open(url,数据,超时)文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”, 第 394 行,打开 响应 = self._open(req, data) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”, 第 412 行,在 _open '_open', req) 文件 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 372 行,在 _call_chain 结果 = func(*args) 文件 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 1199 行,在 http_open 返回 self.do_open(httplib.HTTPConnection, req) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”, 第 1174 行,在 do_open 引发 URLError(err) urllib2.URLError:

任何帮助理解这里发生的事情将不胜感激。

【问题讨论】:

+1 ifconfig.me/ip,我喜欢这样。 【参考方案1】:

您的代理配置有问题。 您的代码无需代理设置即可工作。

【讨论】:

如何更改代理配置?是 Tor 还是我的服务器上的东西?【参考方案2】:

我对 TorCtl 一无所知,但你没有发送 AUTHENTICATE 字符串,tor 会这样。它应该类似于:

telnet localhost:9051
>> 250 OK
AUTHENTICATE "xxx"
>> 250 OK
signal NEWNYM
>> 250 OK

注意,等待几秒钟让身份发生变化。

【讨论】:

以上是关于在 python 中使用 urllib2 和 Tor 拒绝连接的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫_urllib2的使用

python3中urllib2找不到怎么办

python写爬虫使用urllib2方法

urllib,urllib2和 urllib3的区别

Python3.X如何下载安装urllib2包 ?

Python3.X如何下载安装urllib2包 ?