我正在学习如何在发出请求时使用代理,但我遇到了一个大问题,主要是requests
似乎不在乎所提供的代理是否有效。这使得我几乎无法判断某件事是否真的起作用了,我真的不知道该怎么做。关于requests
提供的代理的文档非常少。在
我的代码从如下列表中获取用户代理字符串和代理:
proxy = {"https": "https://%s:%s@%s" % (USERNAME, PASSWORD, random.choice(PROXY_LIST))}
headers = {"User-Agent": random.choice(USER_AGENT_LIST)}
return partial(requests.get, proxies=proxy, headers=headers)
代理列表项的示例:185.46.87.199:8080
问题是我可以更改用户名,更改密码,等等。。。而且requests
似乎并不在意。发送的所有请求中有很大一部分根本没有通过代理。有没有办法测试代理?看看请求是否真的通过了一个提供的代理?任何调试和/或修复此问题的工具都将不胜感激。在
在larsks的建议下,将日志级别改为DEBUG,得到如下输出:
^{pr2}$不管auth是正确的还是错误的,都没有改变,调试信息中没有提到代理。同样,请求通过我的本地IP。在
请求以
DEBUG
优先级记录调试信息,因此如果通过logging
模块启用调试日志记录,则可以看到各种诊断。例如:有了这些,我就可以开始跑步了:
^{pr2}$看看:
这清楚地显示了与代理的连接。在
希望这足以让你开始。我正在使用
Session
在这里,但是使用partial
的解决方案的行为类似。在使用代理将上述输出与
requests
是而不是时的日志消息进行比较:在这里,我们看到的是与远程站点的初始连接 ,并且
GET
请求不包括主机名。在更新
以上,使用HTTPS url:
请注意,我正在设置}键。在
http
和{相关问题 更多 >
编程相关推荐