我使用以下代码通过代理连接到网站:
proxy_support = urllib2.ProxyHandler({"http":"http://"+proxy})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
html = urllib2.urlopen(url).read()
我正在轮换代理列表,它们经常更改。每当我遇到一个连接失败的坏代理时,连接就会通过我的IP。在
我通过向whatismyip发送垃圾邮件来测试这一点,偶尔我的IP也会出现。在
如果某个连接试图使用我的家庭IP,我可以在它断开之前停止它吗?在
我会尽力解释这个问题,因为我以前就有过。在
如果在连接处理程序urllib2将启动时有一个代理集,请检查它(地址是否正确?用户?密码?端口?)用它来连接。在
如果您查看代码,作者甚至承认它不是最佳的:
所以它在调用代理之前,如果有一个代理,它将使用如果没有。。。在
但是如果有任何错误(错误的url,错误的代理),它将向连接处理程序返回NONE。在
因此连接处理程序将连接,因为它没有任何代理集。
现在回到你的问题上:
您可以在使用代理之前检查它,并丢弃不好的代理。但是仍然存在这样一个问题:在程序运行期间,一些代理将失效或更改。在
为此,您可以修改urllib2以返回localproxy而不是None。 在这个场景中,您的localproxy将为所有内容使用一个默认页面,这样您的程序就可以知道“何时”碰到了有问题的代理。在
这是一次黑客攻击,甚至是丑陋的黑客攻击。在
我做了,然后愉快地上网。在
希望对你有帮助
相关问题 更多 >
编程相关推荐