2

今の私のスキルをはるかに超えたプロジェクトになるかもしれませんが、丸 1 か月ほどは費やすことができるので、できると思います。私が構築したいのはこれです: さまざまな情報源から特定の主題に関するニュースを収集します。簡単ですよね?RSS フィードを取得してページに表示するだけです。うーん、もっと高度な機能が欲しい: 重複を削除し、カスタマイズされたプレゼンテーション (つまり、ニュースの見出しが表示される形式を定義/変更できる)。

私は Yahoo Pipes やその他のツールを少し使ってみましたが、2 つの大きな問題に直面しています。

  1. 一部のソースは RSS フィードを提供していません。作成方法を教えてください。
  2. 重複を見つけて削除する最良の方法は何ですか。見出しを比較して、たとえば 50% を超える一致があるかどうかを確認することを考えました。しかし、それは良い習慣ですか?

私が考えていなかったかもしれない他のこと(問題、提案など)を追加してください.

4

2 に答える 2

1

重複は厄介な問題です。私が最終的にやったこと:

  • 1.リンクを除くすべてのHTMLタグを削除します(正規表現を使い始めましたが、やけどを負いました。最終的には、タグを削除するためにカスタム解析に移行しました)
  • 2.すべての空白を取り除きます
  • 3.ケース鈍感
  • 4.MD5ですべてをハッシュします。

リンクを残す理由は次のとおりです。コメントは「はい、これは最悪です」のように単純な場合があります。「はい、これは最悪です」というのが一般的なコメントかもしれません。しかし、「これは最悪だ」というテキストが別のものにリンクされている場合、それは重複したコメントではありません。

さらに、RSSフィードではHTMLタグのエスケープがおかしいことがわかります。迷子<は二重にエンコードされると思うでしょう:(私は思う)&<; そうではありません。エンコードされています<しかし、HTMLタグも同様です!

:<p>最終的に、Mozilla Firefoxによって解析されたすべての既知のHTMLタグをコピーし、それらのタグを手動で認識しました。

HTMLからRSSフィードを作成するのは非常に厄介で、重複排除とコンテンツ抽出に優れたSpinn3rなどのサービスのみを紹介できます。これらのサービスは通常、私より上の確率ベースのアルゴリズムを使用します。ページの再登録をやめたプロバイダーを知っていますが(特定のページがMySpaceベースまたはBloggerベースであることを知っている必要がありました)、見事に機能しませんでした。

于 2010-09-13T02:25:53.520 に答える
0

YQL モジュールを使用して、RSS を提供しない Web ページをスクレイピングしてみてください。HTML をスクレイピングする YQL ステートメントのサンプルを次に示します。

重複については、こちらのパイプをご覧ください。

カスタマイズされたプレゼンテーション: 本当にカスタマイズしたい場合は、パイプの結果を自分で操作する必要があります。たとえば、JSON として取得し、Javascript で操作するか、サーバー側で処理します。

于 2010-09-10T17:02:14.727 に答える