使用 tor 发出请求 python?
Using tor to make requests python?
我完全是使用 requests
和 tor
的新手。
我使用的代码:
def get_tor_session():
session = requests.session()
# Tor uses the 9050 port as the default socks port
session.proxies = {'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'}
return session
session = get_tor_session()
print(session.get("http://httpbin.org/ip").text)
我不断收到以下错误:
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: SOCKSHTTPConnectionPool(host='httpbin.org', port=80): Max retries exceeded with url: /ip (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))
我查看了各种答案,但无法确定问题所在。
这是适合我的代码:
import requests
torport = 9050
proxies = {
'http': "socks5h://localhost:{}".format(torport),
'https': "socks5h://localhost:{}".format(torport)
}
print(requests.get('http://icanhazip.com', proxies=proxies).content)
检查以确保 Tor 运行 在您的计算机上并且 Windows / Defender 等上的防火墙没有阻止您尝试访问的端口。
我遇到了同样的问题,下面的解决方案解决了它。
SOCKSHTTPConnectionPool(host='httpbin.org', port=80)
根据这行,你电脑的监听端口配置的是80端口,需要改成你在torrc文件中配置的SOCKSPort,我的SOCKSPort=9050,默认CONTROL PORT值设置为9051。
How to configure a tor proxy on windows? 这 link 解释了如何配置 tor。
确保 tor 浏览器在后台 运行。
希望此信息有所帮助。
您可以这样更改代码:
def __init__(self):
self.header = {'Content-Type': 'application/x-www-form-urlencoded'}
# ***** proxy *****#
def renew_connection(self):
with db.Controller.from_port(port=9051) as controller:
controller.authenticate(password='my_password')
controller.signal(Signal.NEWNYM)
controller.close()
def request_tor(self, url, headers, post_fields):
self.renew_connection()
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
r = session.post(url, headers=headers, data=post_fields)
我完全是使用 requests
和 tor
的新手。
我使用的代码:
def get_tor_session():
session = requests.session()
# Tor uses the 9050 port as the default socks port
session.proxies = {'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'}
return session
session = get_tor_session()
print(session.get("http://httpbin.org/ip").text)
我不断收到以下错误:
raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: SOCKSHTTPConnectionPool(host='httpbin.org', port=80): Max retries exceeded with url: /ip (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))
我查看了各种答案,但无法确定问题所在。
这是适合我的代码:
import requests
torport = 9050
proxies = {
'http': "socks5h://localhost:{}".format(torport),
'https': "socks5h://localhost:{}".format(torport)
}
print(requests.get('http://icanhazip.com', proxies=proxies).content)
检查以确保 Tor 运行 在您的计算机上并且 Windows / Defender 等上的防火墙没有阻止您尝试访问的端口。
我遇到了同样的问题,下面的解决方案解决了它。
SOCKSHTTPConnectionPool(host='httpbin.org', port=80)
根据这行,你电脑的监听端口配置的是80端口,需要改成你在torrc文件中配置的SOCKSPort,我的SOCKSPort=9050,默认CONTROL PORT值设置为9051。 How to configure a tor proxy on windows? 这 link 解释了如何配置 tor。 确保 tor 浏览器在后台 运行。 希望此信息有所帮助。
您可以这样更改代码:
def __init__(self):
self.header = {'Content-Type': 'application/x-www-form-urlencoded'}
# ***** proxy *****#
def renew_connection(self):
with db.Controller.from_port(port=9051) as controller:
controller.authenticate(password='my_password')
controller.signal(Signal.NEWNYM)
controller.close()
def request_tor(self, url, headers, post_fields):
self.renew_connection()
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
r = session.post(url, headers=headers, data=post_fields)