首页 > 解决方案 > requests.exceptions.ConnectionError:无法建立新连接:0x05:连接被拒绝

问题描述

我知道已经有很多关于这个话题的话题,但没有一个能吸引我。

import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()
browser.set_user_agent(
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')

proxies = dict(http='socks5://104.238.97.230:31800', https='socks5://104.238.97.230:31800')
res = browser.open('http://icanhazip.com/', proxies=proxies, verify=False)
# res = browser.open('http://icanhazip.com/')
print(res.content)

我的代理正在工作,没有问题。如果我通过代理重定向我的 python 流量,我会得到我想看到的结果,但如果我只是尝试这段代码,我会得到一个错误。

我也尝试了 try - except 和睡眠,但它对我没有用。有人知道解决方案吗?

标签: pythonpython-requestsmechanize-python

解决方案


这对我有用:

import mechanicalsoup
import socks
import socket


def create_connection(self, address, timeout=None, source_address=None):
    sock = socks.socksocket()
    sock.connect(address)
    return sock


socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '104.238.97.230', 31800)

# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection

browser = mechanicalsoup.StatefulBrowser()
browser.set_user_agent(
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36')

proxies = dict(http='socks5://104.238.97.230:31800', https='socks5://104.238.97.230:31800')

res = browser.open('http://icanhazip.com/')
print(res.content)

推荐阅读