提问者:小点点

Python SOCKS5代理客户端HTTPS


我试图通过HTTPS上的SOCKS5代理服务器发出请求,但它失败或返回空字符串。我正在使用PySocks库。

这是我的例子

    WEB_SITE_PROXY_CHECK_URL = "whatismyipaddress.com/"
    REQUEST_SCHEMA = "https://"

    host_url = REQUEST_SCHEMA + WEB_SITE_PROXY_CHECK_URL
    socket.connect((host_url, 443))
    request = "GET / HTTP/1.1\nHost: " + host_url + "\nUser-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11\n\n"
    socket.send(request)
    response = socket.recv(4096)
    print response

但它不工作,它打印一个空字符串响应。

在Python中有没有办法通过socks5代理发出HTTPS请求?

谢啦


共1个答案

匿名用户

从2.10版开始。0于2016年4月29日发布,请求支持SOCKS。

它需要PySocks,可以与pip安装PySocks一起安装。

 import requests

 host_url = 'https://example.com'
 #Fill in your own proxies' details
 proxies={http:'socks5://user:pass@host:port',
          https:'socks5://user:pass@host:port'}
 #define headers if you will
 headers={}

 response = requests.get(host_url, headers=headers, proxies=proxies)

请注意,当使用SOCKS代理时,请求袜子将使用完整的URL进行HTTP请求(例如,GETexample.comHTTP/1.1而不是GET/HTTP/1.1),此行为可能会导致问题。