如何在python的请求中禁用代理socks5?

Posted

技术标签:

【中文标题】如何在python的请求中禁用代理socks5?【英文标题】:how to disable proxy socks5 in request in python? 【发布时间】:2017-10-14 08:30:18 【问题描述】:

我需要使用 socks5 发送请求,发送此请求后,我在 python 中发送了不带 seocks5 的请求。

例如:

import socks
import socket
import requests

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "61.8.75.186", 1080)
socket.socket = socks.socksocket

# With Socks5
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10)
self.logger.info("Set ip: ".format(response.content))

# Without Socks5
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10)
self.logger.info("Set ip: ".format(response.content))

如何在python中的一个请求后禁用代理socks5?

【问题讨论】:

【参考方案1】:

当您不想使用代理时,可以将套接字设置回socket.socket

import socks
import socket
import requests

_socket = socket.socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "61.8.75.186", 1080)

# With Socks5
socket.socket = socks.socksocket
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10)
print("Set ip: ".format(response.content))

# Without Socks5
socket.socket = _socket
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10)
print("Set ip: ".format(response.content))


如果您使用的是requests > 2.10.0,您可以在proxies 参数中设置SOCKS proxy。
import requests

# With Socks5
proxies = 'http':'socks5://61.8.75.186:1080', 'https':'socks5://61.8.75.186:1080'
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10, proxies=proxies)
print("Set ip: ".format(response.content))

# Without Socks5
url = 'http://ip.3300.ir/'
response = requests.get(url, timeout=10)
print("Set ip: ".format(response.content))

【讨论】:

以上是关于如何在python的请求中禁用代理socks5?的主要内容,如果未能解决你的问题,请参考以下文章

Python。通过代理(socks5 TOR)工作的请求库 - 错误

如何为chrome浏览器设置socks5代理?

如何为chrome浏览器设置socks5代理

如何在Linux下配置socks5代理

如何在 youtube-dl 的 python 代码中嵌入 socks5 代理?

如何正确认识socks5代理ip