当前位置: 首页 > 面试题库 >

使用Python / urllib2处理RSS重定向

樊宏邈
2023-03-14
问题内容

调用urrlib2.urlopen指向从RSS源中获取的文章的链接会导致以下错误:

urllib2.HTTPError:HTTP错误301:HTTP服务器返回了重定向错误,这将导致无限循环。最后30x错误消息是:永久移动

根据文档,urllib2支持重定向。

在Java上,只需调用即可解决问题

HttpURLConnection.setFollowRedirects(true);

如何使用Python解决?

更新

我遇到的链接有问题:

http://feeds.nytimes.com/click.phdo?i=8cd5af579b320b0bfd695ddcc344d96c


问题答案:

原来您需要启用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()


 类似资料:
  • 问题内容: 我正在urllib2的urlopen中使用timeout参数。 我如何告诉Python,如果超时到期,应该引发自定义错误? 有任何想法吗? 问题答案: 在极少数情况下要使用。这样做会捕获可能很难调试的 任何 异常,并且会捕获包括和在内的异常,这些异常会使您的程序恼人。 最简单的说,您会发现: 以下内容应捕获连接超时时引发的特定错误:

  • 问题内容: 我最近尝试使用多处理模块(和它的)来加速一个小工具(使用urllib2将请求发送到(非官方)twitter-button-count-url(> 2000 url)并解析其结果)工人池)。我在这里阅读了一些有关多线程(与标准的非线程版本相比,它使整个过程变慢)和多处理的讨论,但是我找不到(可能非常简单)问题的答案: 您可以通过多处理来加速url调用吗,还是不是像网络适配器那样的瓶颈?我

  • 问题内容: 我打开网址: 我想做的就是以相同的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我无法回忆起该功能。 问题答案:

  • 问题内容: 我正在将一些数据发布到正在回答302移动临时的服务器上。 我希望HttpClient遵循重定向并自动获取新位置,因为我相信这是HttpClient的默认行为。但是,我得到一个例外,而不是按照重定向:( 这是相关的代码,任何想法都将不胜感激: 问题答案: HttpClient的默认行为符合HTTP规范(RFC 2616)的要求 您可以通过子类化DefaultRedirectStrateg

  • 11.7. 处理重定向 你可以使用两种不同的自定义 URL 头信息来处理永久重定向和临时重定向。 首先, 让我们来看看重定向处理的必要性。 例 11.10. 没有重定向处理的情况下,访问 web 服务 >>> import urllib2, httplib >>> httplib.HTTPConnection.debuglevel = 1 >>> request = url

  • 对于许多开发人员来说,使用.htaccess总是有点困惑。 目前我也遇到了一个问题 我们希望3到4件东西可以同时与htaccess一起工作 1) 将非www重定向到www 2)删除. php扩展 3)对于具有尾随参数的页面abc.php?pageid=28和abc.php?pageid=95 所有这些都必须共同努力。