0

嗨,我在从特定站点下载和读取 rss 提要时遇到问题,问题似乎是生成的下载 rss 提要看起来是二进制格式,谁能告诉我如何将其恢复为可读格式然后我可以发送到美丽的汤进行解析?

到目前为止,这是我的代码:-

import urllib2
from BeautifulSoup import BeautifulSoup

rss_feed = urllib2.urlopen("http://kat.ph/usearch/ubuntu/?rss=1", timeout=5.0).read()
print rss_feed #will display binary not expected xml
rss_feed_soup = BeautifulSoup(rss_feed)

所以只是为了澄清我在尝试使用 urllib2 读取时似乎无法获得生成的 xml,如果我在任何现代网络浏览器中查看 rss 提要,则 rss 会正确显示,我在这里缺少什么?, rss feed 二进制编码了吗?如果是,我该如何正确解码?

感谢您的回复。

4

1 回答 1

1

提要由服务器gzip压缩,以便高效下载;它有一个Content-Encoding: gzip标题集。

用于feedparser下载和解析它,而不是使用urllib2和 BeautifulSoup。

如果必须使用urllib2,也可以先使用gzip模块解压内容:

import gzip
from cStringIO import StringIO

rss_feed = gzip.GzipFile(fileobj=StringIO(rss_feed)).read()
于 2012-12-20T22:13:12.993 回答