我正在研究一個python腳本來解析RSS鏈接。Universal Feed Parser問題
我用的是Universal Feed Parser,我有一些鏈接遇到的問題,例如在試圖解析FreeBSD Security Advisories 下面是示例代碼:
feed = feedparser.parse(url)
items = feed["items"]
基本上進[「項目」]應該返回所有Feed中的條目,以item開始的字段,但始終返回空白。
我還可以確認爲預計以下鏈接解析:
這是一個與飼料問題,在FreeBSD中的那些做也不尊重標準?
編輯:
我使用Python 2.7。 我最終使用feedparser,與BeautifulSoup結合使用,如Hai Vu提議。 下面是示例代碼,我結束了,略有變化:
def rss_get_items_feedparser(self, webData):
feed = feedparser.parse(webData)
items = feed["items"]
return items
def rss_get_items_beautifulSoup(self, webData):
soup = BeautifulSoup(webData)
for item_node in soup.find_all('item'):
item = {}
for subitem_node in item_node.findChildren():
if subitem_node.name is not None:
item[str(subitem_node.name)] = str(subitem_node.contents[0])
yield item
def rss_get_items(self, webData):
items = self.rss_get_items_feedparser(webData)
if (len(items) > 0):
return items;
return self.rss_get_items_beautifulSoup(webData)
def parse(self, url):
request = urllib2.Request(url)
response = urllib2.urlopen(request)
webData = response .read()
for item in self.rss_get_items(webData):
#parse items
我也試過直接傳遞響應rss_get_items,沒有閱讀它,但它拋出和異常,BeautifulSoup嘗試當閱讀:
File "bs4/__init__.py", line 161, in __init__
markup = markup.read()
TypeError: 'NoneType' object is not callable
我得解析幾個RSS鏈接,你覺得BeautifulSoup能處理RSS的所有變種嗎?或者如果沒有結果使用BeautifulSoup,可以先使用feedparser嘗試使用組合。 – hDan
我會和feedparser一起去,然後回到BeautifulSoup。 –