Ale*_*lex 14 python redirect urllib2
调用urrlib2.urlopen从RSS源提取的文章的链接会导致以下错误:
urllib2.HTTPError:HTTP错误301:HTTP服务器返回重定向错误,导致无限循环.最后30x错误消息是:永久移动
根据文档,urllib2支持重定向.
在Java上,问题通过调用解决了
HttpURLConnection.setFollowRedirects(true);
我怎样才能用Python解决它?
UPDATE
我遇到问题的链接:
http://feeds.nytimes.com/click.phdo?i=8cd5af579b320b0bfd695ddcc344d96c
sle*_*erd 26
原来你需要启用Cookies.首先设置cookie后,页面会重定向到自身.因为默认情况下urllib2不处理cookie,所以你必须自己动手.
import urllib2
import urllib
from cookielib import CookieJar
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
p = opener.open("http://feeds.nytimes.com/click.phdo?i=8cd5af579b320b0bfd695ddcc344d96c")
print p.read()
Run Code Online (Sandbox Code Playgroud)
@ sleeplessnerd的解决方案没有任何问题,但这非常非常优雅:
import urllib2
url = "http://stackoverflow.com/questions/9926023/handling-rss-redirects-with-python-urllib2"
p = urllib2.build_opener(urllib2.HTTPCookieProcessor).open(url)
print p.read()
Run Code Online (Sandbox Code Playgroud)
事实上,如果你查看CookieJar()函数的内联文档,它或多或少会告诉你这样做:
You may not need to know about this class: try urllib2.build_opener(HTTPCookieProcessor).open(url)
| 归档时间: |
|
| 查看次数: |
8332 次 |
| 最近记录: |