提问者:小点点

我如何使请求锁请求与ocks5用户名和密码?


我目前使用这个连接到一个Socks5代理和Paramiko。

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,socks_hostname,socks_port, True, socks_username,socks_password)
paramiko.client.socket.socket = socks.socksocket
ssh = paramiko.SSHClient()

然而,我希望在python中使用requesocks和paramiko的相同代理设置发出一些请求,但找不到任何关于用户名和密码的内容。

此外,所有的请求都是通过每次不同的袜子连接完成的,全局设置可能会妨碍我的其他连接。

关于如何做到这一点,或者是否有替代方案,有什么想法吗?我当前的实现大量使用python请求,因此最好从那里过渡到requesocks,这样我就不必重构所有内容。

注意:如何使python请求工作通过袜子代理不工作,因为它不使用ocks5身份验证。


共2个答案

匿名用户

您可以使用PySocks:

pip install PySocks

然后在你的python文件中:

import socket
import socks
import requests

socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050, True, 'socks5_user','socks_pass')
socket.socket = socks.socksocket
print(requests.get('http://ifconfig.me/ip').text)

它对我有用。但我遇到了另一个问题,即对不同的请求会话使用不同的socks5代理。如果有人对此有解决方案,请提供。

匿名用户

现代方式:

pip install -U requests[socks]

然后

import requests

resp = requests.get('http://go.to', 
                    proxies=dict(http='socks5://user:pass@host:port',
                                 https='socks5://user:pass@host:port'))