2011-04-09 10 views
1

Java機能DOM API、regexpなどを使用してhtmlページ内のデータ型を検出する最も良い方法は何ですか? Skypeプラグインのようなタイプを検出したいのですが、電話番号やメールアドレス、時間などに似ています。HTMLページ内のさまざまなデータ型を検出する方法は?

+0

あなたは、関連する答えをしたい場合は、あなたは、問題の詳細を与える必要があります。これらの任意のWebページ、またはあなたが構造を知っている特定のWebページですか?彼らは整形式ですか?ページのどこかにある既知の場所に値がありますか?ユーザーに表示されていれば気になりますか?これはウェブクロールの問題ですか?あなたはブラウザのプラグインでこれをやろうとしていますか?そして、一般的に、あなたは何をしようとしていますか? –

+0

Hey Stephen、 これは構造、表、リスト、デザイン要素などが異なる一般的なHTMLページです。 私はユーザーの目に見えるだけの要素を検証したいと思います。 これはテストの問題、ブラックボックスです。クロールはおそらく最良の選択ですが、私はブラウザプラグインも考慮に入れることができます –

答えて

2

「タイプ」は、あなたが参照している情報の種類にとって不適切な用語です。 DOM APIまたは正規表現の選択は、ページ内の情報構造によって異なります。

情報を表示するために使用されているテーブルなどの構造を知っている場合は、電話番号とセルのどちらのセルを見つけることができるかを既に知っているので、DOM API 。

それ以外の場合は、解析しないでプレーンHTMLテキストでregexを使用する必要があります。

+0

一致するクローズタグが見つからない場合、DOM APIは凶悪化しませんか?すべてのページが整形式であるとは期待できません。 – user183037

+1

@userどのAPI実装を使用しているかによって異なります。よく整形されていないページにうまく対応するような成熟した実装がたくさんあります。私はコブラパーサーで非常に良い経験を持っています:http://lobobrowser.org/cobra.jsp – craftsman

0

私は次の順序で正規表現を使用したい:テキストにちょうどプレーンテキストに

  • マッチ関連のパターンを残してすべてのタグを削除

    1. エキスのみBODYコンテンツ

    もちろん、これはマークアップがヒントを提供していないことと、ページコンテキストを変更せずに純粋にデータを抽出していることを前提としています。このことができます

    希望、

    フィルLelloの

  • +0

    Hey Phil、 それは本当に大変です。さらに、問題の1つは関連する型を見つけることです。その理由のいくつかは、通貨、番号、電話番号のように非常に似ているため、正規表現の使用が非常に複雑になります –

    関連する問題