首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒。通过代理运行的请求库(Socks5 TOR) -错误

巨蟒。通过代理运行的请求库(Socks5 TOR) -错误
EN

Stack Overflow用户
提问于 2018-07-10 15:43:10
回答 2查看 2.7K关注 0票数 1
代码语言:javascript
复制
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 34, in <module>
    page = http.robotCheck()
  File "C:\Users\user001\Desktop\automation\Loader.py", line 21, in robotCheck
    request = requests.get('http://*redacted*.onion/login')
  File "C:\Users\user001\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\user001\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\user001\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\user001\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\user001\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\adapters.py", line 513, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='*redacted*.onion', port=80): Max retries exceeded with url: /login (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0348E230>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

这是我的Loader类的代码。Loader负责通过TOR上传和向资源发出请求。我配置了代理,但它仍然抛出错误。我禁用了VPN、Windows防火墙和所有我能做的事情。

代码语言:javascript
复制
import socket
import requests

class Loader:
    url = "http://*redacted*.onion/login"
    user = "username"
    password = 'password'
    manageUrl = ''

    def __init__(self, config):
        self.config = config

        self.restartSession()

    def restartSession(self):
        self.userSession = requests.session()
        self.userSession.proxies['http'] = 'http://127.0.0.1:9050'
        self.userSession.proxies['https'] = 'https://127.0.0.1:9051'

    def robotCheck(self):
        request = requests.get('http://*redacted*.onion/login')
        print(request)
        #self.session.post(self.robotCheckUrl, data=checkResult)

    def authorization(self):
        self.session.get(self.url)
        authPage = self.session.post(self.url, data = self.getAuthData())


    def getAuthData(self):
        return {'login' : self.user, 'password' : self.password}

调用Loader类的代码:

代码语言:javascript
复制
http = Loader(Config())
page = http.robotCheck()
EN

回答 2

Stack Overflow用户

发布于 2018-07-10 22:56:20

Tor是SOCKS代理,因此代理配置需要稍有不同。

代码语言:javascript
复制
    self.userSession.proxies['http'] = 'http://127.0.0.1:9050'
    self.userSession.proxies['https'] = 'https://127.0.0.1:9051'

至:

代码语言:javascript
复制
    self.userSession.proxies['http'] = 'socks5h://127.0.0.1:9050'
    self.userSession.proxies['https'] = 'socks5h://127.0.0.1:9050'

端口9051是Tor控制器端口。对于通过Tor的HTTP和HTTPS SOCKS连接,请使用端口9050 (默认SOCKS端口)。

socks5h方案是通过Tor而不是由客户端解析DNS名称所必需的。这使DNS查找私营化,并且对于能够解析.onion地址是必要的。

编辑:我可以使用以下示例发出SOCKS请求以获取.onion地址:

代码语言:javascript
复制
import socket
import requests

s = requests.session()
s.proxies['http'] = 'socks5h://127.0.0.1:9050'
s.proxies['https'] = 'socks5h://127.0.0.1:9050'

print(s.proxies)

r = s.get('http://***site***.onion/')

确保您拥有最新的pip3 install -U requests[socks]'请求库

票数 1
EN

Stack Overflow用户

发布于 2018-07-10 16:15:56

像这样包装,只获取异常。

代码语言:javascript
复制
 def robotCheck(self):
    try:

        request = requests.get('http://hydraruzxpnew4af.onion/login')
        print(request)
    except requests.exceptions.RequestException as e:
        print('exception caught', e)
    #self.session.post(self.robotCheckUrl, data=checkResult)

由于以下原因,您可能会得到这些错误:

  • 您的服务器可能会拒绝您的连接(您发送了太多

短时间内来自相同ip地址的请求)

  • 检查您的代理设置

供您参考:https://github.com/requests/requests/issues/1198

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51259693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档