我用urllib2模块在线程中请求一批url(十几个的样子),这个线程每隔十几分钟运行一次。每次初始运行程序时可以顺利请求到URL资源,但十几分钟线程再次请求时就全都出现“HTTP Error 503: Service Unavailable” 错误,但此时又可在浏览器中正常打开这些链接,在IDLE Shell中以导入模块的方式运行那个函数也没问题,这是什么情况?
请求时设置了User-Agent,应该不是被服务器阻止了,我怀疑是不是资源没有释放的原因,但不知怎么解决。还有urllib2.urlopen(...) 后使用close()关闭连接。
找到原因了,我的代码某处设置了代理,而这个地方逻辑写错了。
原来是这样的:
更改后是这样的,然后就没问题了,上面把代理设置成全局了,所以才出现这些错误: