2012-01-10 11 views
2

私はHttpClientを使用して特定のWebサイトにアクセスし、その応答はHTML形式です。どのパーサーまたはメソッドをパーサに使用するかHTMLを使用して、応答から必要なものを取得する必要があります。 注:JavaでHttpClientを使用していますHTML Parser for response - Java

+0

可能重複[どのHTMLパーサーが最適ですか?](http://stackoverflow.com/questions/2168610/which-html-parser-is-best) –

+1

私は両方をアップしました。 Javaライブラリのhtml解析はひどいです。他の何かが良いでしょう。 – Bill

答えて

4

jsoupを使用しています。

jsoupは、現実世界のHTMLを扱うためのJavaライブラリです。 は、DOM、CSS、およびjqueryのようなメソッドを使用して、データの抽出と操作に非常に便利なAPI、 を提供します。

jsoupは、WHATWG HTML5仕様を実装しており、最新のブラウザと同じDOMをHTMLとして解釈します( )。

  • スクレープやURL、ファイル、または文字列
  • 検索や抽出データからHTMLを解析し、DOMのトラバーサルやCSSセレクタを使用すると、
  • HTML要素を操作、属性、およびテキスト
  • クリーンUSER-
  • XSS攻撃を防ぐための安全なホワイトリストに対して提出されたコンテンツ、きちんとHTML

jsoupは、Oすべての品種を扱うために設計されて出力f 野生で見つかったHTML;元の状態から検証して、無効なタグ - スープにする。 jsoup は、分かりやすい構文解析ツリーを作成します。

1

私はhtmlcleanerを試してみます。

HTMLCleanerは、Web上で見つかったHTMLを安全に解析して整形式XMLに変換するためのJavaライブラリです。それは小さく、速く、柔軟で独立しているように設計されています。 HtmlCleanerは、Javaコード、コマンドラインツール、またはAntタスクとして使用できます。構文解析の結果は、DOMやJDomのような標準に簡単に変換でき、あるいは様々な方法(コンパクト、きれいな印刷など)でXML出力にシリアル化された軽量のドキュメントオブジェクトモデルです。

あなたは、XML/HTML tags.Here内のコンテンツを取得するためにhtmlcleanerでXPathを使用することができますjsoupとJava8とXpath Example

0

素敵
例であるサンプルコード:

// Imports: 
... 
import java.nio.charset.StandardCharsets; 
import org.apache.commons.io.IOUtils; 
... 

// Execute the GET request: 
... 
HttpClient clientGet = HttpClientBuilder.create().build(); 
HttpGet get = new HttpGet(url); 
HttpResponse res = clientGet.execute(get); 

// Use jsoup to parse the html response: 
// E.g. find all links with reference to myapp: 
// <a href="myapp">HelloWorldApp</a> 
Document doc = Jsoup.parse(IOUtils.toString(res.getEntity().getContent(), StandardCharsets.UTF_8)); 
Elements links = doc.select("a[href~=myapp]"); 
for (Element link : links) 
    String appName = link.html(); 
...