我正在使用feedparser来获取RSS提要数据 . 对于大多数可以正常工作的RSS源 . 但是,我知道偶然发现一个提取RSS源的网站失败了(example feed) . 返回结果不包含预期的键,值是一些HTML代码 .
我尝试使用 urllib2.Request(url)
简单地阅读供稿网址 . 这失败并出现 HTTP Error 405: Not Allowed
错误 . 如果我添加一个自定义 Headers
headers = {
'Content-type' : 'text/xml',
'User-Agent': 'Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0',
}
request = urllib2.Request(url)
我不再得到405错误,但返回的内容是一个HTML文档,其中包含一些HEAD标记和一个基本上为空的BODY . 在浏览器中,当我看到"View Page Source"时,一切看起来都很好 . feedparser.parse
也允许设置 agent
和 request_headers
,我试过各种代理 . 我仍然无法正确读取XML,更不用说来自 feedparse
的解析后的Feed了 .
我在这里错过了什么?
1 回答
因此,当发出请求的客户端不使用
User-Agent
时,此Feed会产生405
错误 . 试试这个:没有UA,你会得到: