2009-03-31 13 views
4

feedparserまたはその他のPythonライブラリを使用してRSSフィードをダウンロードして解析します。 newアイテムとmodifiedアイテムを確実に検出するにはどうすればよいですか?RSSフィードの変更されたアイテムと新しいアイテムを検出する方法は?

これまでのところ、最新のアイテムよりも前の公開日の新しいアイテムがフィードに表示されています。また、同じアイテムを表示するフィードリーダーが、別々のアイテムとしてわずかに異なるコンテンツで公開されているのを見ました。私はフィードリーダーアプリケーションを実装していないので、フィードデータをアーカイブするための単純な戦略が必要です。

答えて

5

フィードの信頼度によって異なります。 feedparserはフィード項目に.id属性を提供します。この属性は、RSSソースとATOMソースの両方で一意である必要があります。たとえば、フィードパーサーのATOM docsを参照してください。 .idはほとんどのケースをカバーしますが、ソースが同じIDを持つ複数のアイテムを公開する可能性が考えられます。その場合、アイテムのコンテンツをハッシュするだけではあまり選択肢がありません。

+0

私の場合、コンテンツをハッシングすることは可能です。 item.title&item.contentで十分でしょうか?おそらく、 – muhuk

+0

。私が従ういくつかのフィードは、内容を変更することなく同じアイテムのタイトルを変更します。そのような場合は、コンテンツによるハッシングだけに気をつけるかもしれません。それはあなたが各項目について「基本的」と考えるものに依存します。 –

+0

いずれの場合でも、解決策は受信側のすべての「古い」データを追跡することでしょうか?処理したIDまたは既に処理したエントリのハッシュ値を追跡します。 RSSフィードのすべてのエントリをチェックしたり、フィードのタイムスタンプを信頼することなく、新しいエントリを識別する方法はありません。 –

関連する問題