2011-07-27 12 views
1

私はこの問題を抱えています。さまざまなHTMLデータソースを掻き集める必要があります。各データソースには、国名、電話番号、1分あたりの価格など、多くの行を含むテーブルが含まれています。おそらくいくつかのサンプルデータのためのテキストを検索し、試みることによって - 私は..スマート自動スクレイピング

  1. が自動的にHTMLページ、 の右の表を見つけようと、いくつかの半自動スクレーパーを構築したいと思います

    両方

  2. 抽出を行 を含む一般的なHTML要素を見つけるために - 二つの要素上を見て選択することにより、同じパッテン

  3. は、どの列に何が含まれているかを識別します。 - ファジーアルゴリズムを使用して、どの列が何であるかを正確に推測します。

  4. python /その他のリストにエクスポートしてください - everytihngをクリーニングしてください。

これは良いデザインのようですか?あなたがPythonでプログラムするなら、どのツールを使うのですか?

+0

スクレイピングの代わりに使用できるAPIはありますか? – amelvin

答えて

0

もっと良い解決策はありません。

XPathを使用して適切な表を検索すると便利です。

4

これは良いデザインのようですか?

いいえ、あなたはpythonでプログラムした場合にそれを行うことを選ぶだろうどのようなツール

美しいスープ

、自動的にHTMLページの右側のテーブルを見つける - おそらくいくつかのサンプルデータのためのテキストを検索し、両方

が含まれている一般的なHTML要素を見つけることを試みることによって

悪い考え。より良いアイデアは、すべてのテーブルを検索し、テーブルとXPathをテーブルにダンプするための短いスクリプトを書くことです。人はテーブルを見て、XPathをスクリプトにコピーします。

行を抽出 - 二つの要素上記のを見て、同じパッテン

悪いアイデアを選択することで。より良いアイデアは、すべてのテーブルを見つけるための短いスクリプトを書いて、見出しでテーブルをダンプすることです。ある人がテーブルを見て、Pythonコードの短いブロックを設定して、テーブル列を名前付きタプルのデータ要素にマップします。

どの列に何が含まれているかを特定する - ファジーアルゴリズムを使用して、どの列が何であるかを正確に推測します。

人はこれを簡単に行うことができます。

いくつかのPython /他のリストにエクスポートする - すべてを削除する。

ほとんどの場合、

人は、テーブルに対して正しいXPathを選択します。ある人が列名を名前付きタプルにマップするコードの短いスニペットを書いています。これらのパラメータを指定すると、Pythonスクリプトがテーブルを取得し、データをマップして有用な出力を生成することができます。

なぜ人を含むのですか?

ウェブページには悪名高いエラーが記録されているため、

最後の3年間を過ごした後、私はファジーロジックと魔法の "見つけようとしている"と "同じパテンを選んでいる"ことは良い考えではなく、うまくいかないと確信しています。

ページの「データプロファイル」を作成する簡単なスクリプトを書く方が簡単です。

単純なスクリプトを書く方が簡単です。設定ファイルを読み込んで処理します。

+3

+1は「悪名高い悪いエラー」です。唯一悪いのは、htmlを掻き集めることは、構文的に間違っていて、任意に書かれたhtmlを掻き集めることです。 –

関連する問題