CNNのトップストーリーRSSフィードから最新の10,000件を取得したいと考えています。私は、これを行うには、次のPythonプログラムを使用して、次のようにGoogleのアーカイブツールに接続しています:Googleリーダーのアーカイブフィードが無効なxmlですか?
import string
import urllib2
from xml.dom import minidom
feedAddr = "http://www.google.com/reader/atom/feed/http://rss.cnn.com/rss/cnn_topstories.rss?r=n&n=1000"
feedString = urllib2.build_opener().open(urllib2.Request(feedAddr)).read()
xml = minidom.parseString(feedString)
items = xml.getElementsByTagName("item")
for item in items:
titleNode = item.childNodes[1]
linkNode = item.childNodes[3]
titleString = titleNode.firstChild.data
linkString = linkNode.firstChild.data
print titleString, linkString
私は次のエラーを取得しています:
xml.parsers.expat.ExpatError: mismatched tag: line 1285, column 4
が、これはGoogleのアーカイブツールの問題ですまたはフィードジェネレータ?私のPythonコードには問題がありますか?私は上に見られるように、このページからCNNのフィードURLにスプライシングをフィードURLを取得しています:
http://googlesystem.blogspot.com/2007/06/reconstruct-feeds-history-using-google.html
まあ、CNN RSSを直接使うことの提案は本当に価値があります。 – Kirill
直接打つことはできません。それはちょうど10個ほどの最新の物語の部分的なリストを返します。認証が必要ですが、ブラウザをhttp://www.google.com/reader/atom/feed/http://rss.cnn.com/rss/cnn_topstories.rss?r=n&n=に誘導してください1000は私が望むものを与えます。だから私はファイルからそれを開くだけです。 また、ファイルを本当に閉じる必要があります。 Pythonは閉じられるまで実際にファイルを書きません。 – JeremyKun
これは、コードスニペットであなたを助けてくれる人にするのはばかげたコメントでした。 *もちろん*完全なプログラムではありません。ああ... – larsks