我有一个奇怪的问题,几个小时来我一直在“谷歌搜索”
我也尝试过stack上类似主题的解决方案,但仍然没有积极的结果:
如何使用Python urlopens设置cookie?
处理rss重定向与Python/urllib2
所以我想从某个网页下载整套文章。它包含适当内容的子链接只与一个数字不同,所以我循环整个范围(1到400000),并将html写入文件。这里最重要的是,这个网页需要重新发送cookies以获得正确的url,并且在讲授如何使用Python登录到网页并检索cookies以供以后使用之后?我已经做完了。
但有时我的脚本返回错误:
response=meth(req,response)
文件“/usr/lib/python3.1/urllib/request.py”,第468行,在http_response
“http”,请求,响应,代码,消息,hdrs)
http\u error\u 302 self中的文件“/usr/lib/python3.1/urllib/request.py”,第553行。inf\u msg msg,headers,fp)
urllib。错误HTTPError:HTTP错误302:HTTP服务器返回一个重定向错误,该错误将导致无限循环
上一个30倍错误消息为:
找到
这个问题很难重现,因为脚本通常工作正常,但它在几千个“for循环”之后随机发生。
下面是来自服务器的curl-ouptut:$curl-I”http://my.url/“
HTTP/1.1200 OK
日期:2012年10月17日星期三10:14:13 GMT
服务器:Apache/2.2.15(Oracle)
X-Powered-By:PHP/5.3。3
设置Cookie:Kuuxk=ae7s3isu2cEshhijte4nb1clk5;path=/
过期:1981年11月19日星期四08:52:00 GMT
缓存控制:无存储,无缓存,必须重新验证,后检查=0,前检查=0
杂注:无缓存
更改:接受编码
连接:关闭
内容类型:文本/html;字符集=UTF-8
一些人建议使用mechanize或尝试捕获异常,但我不知道如何做,其他人说错误是由错误的cookie处理引起的,但我也尝试使用urllib2和add_header('cookie',cookie)
“手动”获取和发送cookie,结果类似。我想知道我的for
循环和mabey的短暂睡眠是否会导致脚本失败<安惠-感谢您的帮助。
编辑:
如果这样做可行-如何捕获异常并尝试忽略它?
编辑:
只需忽略此错误即可解决此问题。不,一切都很好<我曾经
try: #here open url except any_HTTPError: pass
每次我使用url。开放式教学。
要关闭。
让我建议另一种解决方案:HTTP状态代码302意味着找到重定向
(参见:https://en.wikipedia.org/wiki/HTTP_302)。
例如:HTTP/1.1 302找到的位置:http://www.iana.org/domains/example/
您可以抓取位置
标题并尝试获取此url。
有8个重定向状态代码(301-308)。如果301,您可以为位置
标题