为正常运行的Sms类代码添加Tor会话连接的技术问询
为Sms类添加Tor网络访问会话实现
首先,你需要先安装支持socks代理的requests扩展,因为Tor默认使用socks5代理,执行下面的命令:
pip install requests[socks]
接下来我帮你补全Tor会话的实现,并且整合到你的Sms类里,完整代码如下:
import requests class Sms: def __init__(self, api_key): self.key = api_key self.url = 'http://sms.com' # 初始化Tor会话,让整个实例复用同一个会话,提升请求效率 self.tor_session = self.get_tor_session() def get_tor_session(self): session = requests.session() # Tor默认使用9050端口作为socks代理(如果你的Tor配置了其他端口,比如Tor Browser默认的9150,记得对应修改) session.proxies = { 'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050' } # 可选:验证Tor连接是否成功,通过httpbin获取当前IP,确认是Tor节点IP try: response = session.get('http://httpbin.org/ip') print(f"当前Tor节点IP: {response.json()['origin']}") except Exception as e: print(f"Tor连接验证失败: {str(e)}") return session def request(self, action): params = {**{'api_key': self.key}, **action.data} # 使用Tor会话发起请求,替代原来直接调用requests.get的方式 response = self.tor_session.get(self.url, params=params) return response.text
代码细节说明:
- 会话复用:在
__init__方法中提前创建Tor会话,避免每次请求都重新建立连接,提升请求效率 - 代理配置:为会话设置http和https的socks5代理,指向Tor默认的本地监听端口,确保所有请求走Tor网络
- 连接验证:在会话初始化时添加了可选的IP校验逻辑,方便你快速确认Tor是否正常工作
- 请求改造:把原
request方法中的requests.get替换为Tor会话的get方法,让所有短信请求都通过Tor发送
注意:使用前要确保你的Tor服务已经正常启动,并且监听端口和代码中配置的一致哦~
内容的提问来源于stack exchange,提问作者Dmitrij Holkin
相关产品推荐
相关产品推荐

