当前位置: 首页 > 知识库问答 >
问题:

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

蒙华翰
2023-03-14

我对python还很陌生。我正试图为我正在从事的一个项目编写一个非常简单的web刮板。在这个过程中,我试图使用Tor来更改我的IP地址,这样我就不会与我正在刮取的服务断开连接。在将新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(最近一次调用last):文件“scrapingTools.py”,第86行,在main()文件“scrapingTools.py”的第76行,在主打印urllib2中。urlopen('http://ifconfig.me/ip').在urlopen return打开程序中,读取()文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第126行。打开(url、数据、超时)文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第394行,在open response=self中_打开(req,data)文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第412行,在_open'_open',req)文件“/System/Library/Frameworks/python2.7/urllib2.py”,第372行,在_call_chain result=func(*args)文件中“/System/Library/Frameworks/Python。framework/Versions/2.7/lib/python2。7/2。py”,第1199行,在http_open返回self.do_open(httplib.HTTPConnection,req)文件“/System/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/2。py”,do_open raise URLError(err)urllib2.URLError中的第1174行:

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

共有2个答案

仲孙宇定
2023-03-14

我不知道关于TorCtl的任何信息,但您没有发送身份验证字符串,tor会期望这样。它应该看起来像:

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

请注意,请等待几秒钟,以便标识已更改。

袁山
2023-03-14

您的代理配置有一些问题。您的代码在没有代理设置的情况下工作。

 类似资料:
  • 我有一个泊坞群设置,其中包含在覆盖网络中注册的服务。服务之间的通信工作正常,但是我从连接到外部数据库的一个服务中得到了“连接被拒绝”。该服务是基于 Java 的应用程序(Spring启动)。 < li >连接是用其IP(JDBC:MySQL://192 . 168 . 130 . 141:3306/database?auto connect = true) < li >我已经检查过我可以从容器pi

  • 我正在尝试连接到Gmail帐户(通过OAuth 2.0上的ruby Gmail gem、Gmail gem、Gmail_xoauth gem,但每个方法都使用imap.rb),并获得: c:/ruby 21-x64/lib/ruby/2 . 1 . 0/net/IMAP . Rb:1045:在“initialize”中:由于目标计算机主动拒绝连接,因此无法建立连接。-连接(2)用于“imap.gm

  • 我使用的是Postgres 9.1.5。JDBC在第一个实例中运行良好,但当我再次尝试时,它开始拒绝连接。例如,我使用JDBC登录到我的web应用程序,效果很好。但是,我尝试使用连接获取其他数据,它引发了一个异常:连接被拒绝。我确信我的代码没有问题,因为上次运行良好的登录JDBC也引发了一个异常:连接被拒绝。 重新启动postgres windows服务后,它再次工作。然后,登录JDBC,获取一些

  • 我试图实现一个TCP连接,在服务器端一切正常,但当我运行客户端程序(从客户端计算机)时,我得到以下错误: 服务器代码: 客户端代码:

  • 我在Junit中有这段代码,我清楚地将端口设置为8888 但是当我运行测试时,我在这条线上得到了这个错误: 和错误: