urlopen时1006x错误解决方法

         下面这一段最简单不过的代码,你会觉得有什么问题?

import urllib2
import os
def test():
    print urllib2.urlopen("http://www.so.com").read()
if __name__ == '__main__':
test()

 

         事实是,的确抛出了下面的异常,当看到网络上对这种基本的问题连解释的人都没有时,是否有一种发狂的顿挫感?

         是的,这段足够简单的代码让人觉得出错都难以置信,但实际上解决问题的方法都是一样的,也就是直面问题,本身python的开源性提供了我们进一步查明问题的方法,所以只需要设置断点跟进到urlopen里的实现就好了。

         因为urllib2中使用了大量的urllib模块的函数,所以发现如下获取代理的两种方式:系统环境变量和注册表。

   def getproxies():
        """Return a dictionary of scheme -> proxy server URLmappings.
 
        Returns settings gathered from theenvironment, if specified,
        or the registry.
 
        """
        return getproxies_environment() or getproxies_registry()       

 

         对于系统环境变量怎么会有代理选项设置,实在不明白设置的入口,但是注册表就明了多了,“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings”下“ProxyEnable”和“ProxyServer”。

         另外,上述检查最好直接通过注册表查看,如果仅仅是internet选项中,可能会蒙蔽你的眼睛,因为最开始查的时候明明internet选项中是没有设置代理的,但是注册表中真实有代理值。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值