私は一種のニュースアグリゲーターを作成していますが、見出しを正しく検出して表示するプログラム(Python)を作成したいと思います。どうすればこれを行うことができますか?これは機械学習の問題ですか?
私を正しい方向に向けてくれる記事や本をいただければ幸いです。
私の過去の試みには、BeautifulSoupとRequestsモジュールが含まれています。私がチェックすべき他のオープンソースモデルはありますか?
ありがとう、フェルナンド
私は一種のニュースアグリゲーターを作成していますが、見出しを正しく検出して表示するプログラム(Python)を作成したいと思います。どうすればこれを行うことができますか?これは機械学習の問題ですか?
私を正しい方向に向けてくれる記事や本をいただければ幸いです。
私の過去の試みには、BeautifulSoupとRequestsモジュールが含まれています。私がチェックすべき他のオープンソースモデルはありますか?
ありがとう、フェルナンド
少し遊んだ後、これが最もうまくいくことがわかりました:
BeautifuSoup と Requests モジュールを使用する
r = requests.get('http://example.com')
soup = BeautifulSoup(r.text)
if soup.findAll('title'):
title = soup.find('title')
print title.renderContents()
結果は、正規表現を使用して少しクリーンアップする必要があるタイトル テキストです。
Web ページを直接スクレイピングするには、人間の学習が必要です。ページを見て、見出しと思われるものを判断し、それらがどのようにタグ付けされているかを調べてから、BeautifulSoup のようなパーサーを使用してそれらのタグを探します。たとえば、Techmeme のレベル 1 の見出しは現在、次のようにラベル付けされています。
<DIV CLASS="ii">
レベル 2 の見出しは次のとおりです。
<STRONG CLASS="L1">
プログラムがページをフェッチし、関心のあるタグと一致したら、探しているものが識別されるかどうかを確認します。一部の見出しが見逃されている場合は、検索リストにタグを追加してください。誤検知 (見出しではないリンクへのヒット) が発生した場合、それらを取り除くには、ページに依存する追加のロジックが必要になります。リバース エンジニアリングに魔法はありません。うなり声を上げてテストを行い、定期的に再検証を行って、ウェブ マスターがあなたのことを変えていないことを確認するだけです。
RSS\Atomフィードを解析する方がはるかに簡単かもしれません。Googleは、これらのリンクhttp://wiki.python.org/moin/RssLibrariesおよびhttp://pypi.python.org/pypi/Atomisator/1.3を簡単に配信します。
ただし、これらは純粋なXMLであるため、組み込みのurllibおよびXML(DOMまたはSAX)ライブラリを使用できます。