0

私は一種のニュースアグリゲーターを作成していますが、見出しを正しく検出して表示するプログラム(Python)を作成したいと思います。どうすればこれを行うことができますか?これは機械学習の問題ですか?

私を正しい方向に向けてくれる記事や本をいただければ幸いです。

私の過去の試みには、BeautifulSoupとRequestsモジュールが含まれています。私がチェックすべき他のオープンソースモデルはありますか?

ありがとう、フェルナンド

4

3 に答える 3

1

少し遊んだ後、これが最もうまくいくことがわかりました:

BeautifuSoup と Requests モジュールを使用する

r = requests.get('http://example.com')
soup = BeautifulSoup(r.text)

if soup.findAll('title'):
  title = soup.find('title')
  print title.renderContents()

結果は、正規表現を使用して少しクリーンアップする必要があるタイトル テキストです。

于 2012-09-18T20:00:21.040 に答える
1

Web ページを直接スクレイピングするには、人間の学習が必要です。ページを見て、見出しと思われるものを判断し、それらがどのようにタグ付けされているかを調べてから、BeautifulSoup のようなパーサーを使用してそれらのタグを探します。たとえば、Techmeme のレベル 1 の見出しは現在、次のようにラベル付けされています。

<DIV CLASS="ii">

レベル 2 の見出しは次のとおりです。

<STRONG CLASS="L1">

プログラムがページをフェッチし、関心のあるタグと一致したら、探しているものが識別されるかどうかを確認します。一部の見出しが見逃されている場合は、検索リストにタグを追加してください。誤検知 (見出しではないリンクへのヒット) が発生した場合、それらを取り除くには、ページに依存する追加のロジックが必要になります。リバース エンジニアリングに魔法はありません。うなり声を上げてテストを行い、定期的に再検証を行って、ウェブ マスターがあなたのことを変えていないことを確認するだけです。

于 2012-09-17T21:26:08.980 に答える
0

RSS\Atomフィードを解析する方がはるかに簡単かもしれません。Googleは、これらのリンクhttp://wiki.python.org/moin/RssLibrariesおよびhttp://pypi.python.org/pypi/Atomisator/1.3を簡単に配信します。

ただし、これらは純粋なXMLであるため、組み込みのurllibおよびXML(DOMまたはSAX)ライブラリを使用できます。

于 2012-09-17T21:11:28.390 に答える