2009-11-04 125 views
4

我試圖從谷歌新聞使用Python的通用feedparser下載一個新聞語料庫(嘗試做一些自然語言處理)。我對XML一無所知,我只是用一個如何使用feedparser的例子。 問題是,我無法在字典中找到我從RSS feed獲得的內容的新聞標題。feedparser和谷歌新聞

目前,我嘗試使用的代碼是這樣的:

import feedparser 
url = 'http://news.google.com.br/news?pz=1&cf=all&ned=us&hl=en&output=rss' 
# just some GNews feed - I'll use a specific search later 

feed = feedparser.parse(url) 
for post in feed.entries: 
    print post.title 
    print post.keys() 

我在這個崗位領取鑰匙只是標題,摘要,日期,等...有沒有內容。

這是Google新聞的一些問題還是我做錯了什麼?有沒有辦法做到這一點?

+0

谷歌新聞不存儲實際內容據我所知,只是一個內容摘要。您需要刮掉鏈接到該內容的網站。 – Bartek 2009-11-04 02:54:35

+0

:( 我剛剛意識到幾乎每一個相關的新聞源都是這樣的,RSS feed從不包含新聞的全文,只是摘要,我想我必須學習如何使用BeautifulSoup。 – 2009-11-04 13:56:38

+0

我剛剛意識到如何用BeautifulSoup解析一些頁面。感謝您的回答。 – 2009-11-04 19:59:03

回答

8

您是否檢查過Google新聞提要?

每個Feed中都有一個根元素,其中包含一串信息和實際輸入字典。這裏有一個骯髒的方式來看看有什麼可用:

import feedparser 
d = feedparser.parse('http://news.google.com/news?pz=1&cf=all&ned=ca&hl=en&topic=w&output=rss') 

print [field for field in d] 

從我們可以看到我們有一個entries字段,它極有可能包含..新聞條目!如果您:

import pprint 
pprint.pprint(entry for entry in d['entries']) 

我們得到一些更多的信息:)會告訴你所有與一個漂亮的印刷方式中的每個條目(這就是pprint是)

於是領域,獲取所有我們的新聞條目從這個飼料的標題:

titles = [entry.title for entry in d['entries'] 

所以,玩弄這一點。希望這是一個有用的開始

+0

Humm ...我玩了一下這個。顯然這個rss只給出一個摘要,而不是新聞的全文。:( – 2009-11-04 03:13:31