Python中如何使用requests库的proxy设置通过远程服务器的SSR访问Google
RT,本地的话可以使用:proxies = {"http": "127.0.0.1:1080", "https": "127.0.0.1:1080"},可是远程的呢,怎样认证身份啊?
Python中如何使用requests库的proxy设置通过远程服务器的SSR访问Google
4 回复
ssr 本身可以局域网共享的,共享后填内网 IP 就可以。外网得做映射。
在Python的requests库中,通过SSR代理访问Google,关键在于正确配置代理服务器的地址和端口。SSR(ShadowsocksR)通常在本机或远程服务器上运行一个SOCKS5代理服务,requests库支持通过socks5协议进行代理设置。
首先,你需要确保安装了requests和PySocks库。如果没装PySocks,requests的SOCKS代理支持可能无法正常工作。
pip install requests pysocks
下面是完整的代码示例。假设你的SSR代理运行在远程服务器your-remote-server.com的1080端口,并且没有设置用户名和密码认证:
import requests
# 配置代理字典
# 格式: '协议': '协议://用户名:密码@主机:端口'
# 如果SSR代理没有用户密码,直接写主机和端口
proxies = {
'http': 'socks5://your-remote-server.com:1080',
'https': 'socks5://your-remote-server.com:1080'
}
# 目标URL
url = 'https://www.google.com'
try:
# 发起请求,通过proxies参数指定代理
response = requests.get(url, proxies=proxies, timeout=10)
# 检查请求是否成功
response.raise_for_status()
# 打印响应内容的前500个字符
print(response.text[:500])
except requests.exceptions.RequestException as e:
print(f"请求出错: {e}")
代码解释:
proxies字典:这里定义了代理配置。http和https键分别对应两种协议的代理地址。因为SSR提供的是SOCKS5代理,所以协议写socks5。如果你的代理运行在本机,地址就是127.0.0.1。requests.get():这是发起GET请求的方法。关键是把proxies字典传进去,这样请求就会走你指定的代理服务器。- 异常处理:网络请求可能失败,用
try...except包起来,捕获requests.exceptions.RequestException异常,这样程序更健壮。
几个重要的点:
- 协议一致性:确保
proxies字典里用的协议(socks5)和你的SSR服务器实际提供的协议一致。有些旧版配置可能用socks5h(支持DNS解析通过代理),但通常socks5就行。如果遇到DNS问题,可以试试把socks5改成socks5h。 - 地址和端口:把
your-remote-server.com:1080换成你SSR代理服务器的真实IP或域名,以及正确的端口号。 - 认证:如果你的SSR设置了用户名和密码,代理地址格式应该是:
socks5://username:password@your-remote-server.com:1080。
运行这段代码,如果代理配置正确且网络通畅,你应该能看到Google首页的HTML代码被打印出来。
总结:核心就是正确配置socks5代理地址到proxies参数。
你得在你的 requests 中集成 ssr 的客户端才行
ssr 本地客户端可以设置本地端口,一般是 1080,使用这个端口就可以。

