【问题标题】:how to disable proxy socks5 in request in python?如何在python的请求中禁用代理socks5?
【发布时间】: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?

【问题讨论】:

    标签: python python-requests socks


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-23
      • 2015-10-24
      • 1970-01-01
      • 2021-11-08
      • 2022-08-02
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多