質問

httpclientを使用してparcationr webサイトにアクセスし、私が得た応答はHTMLの形式です。どのパーサーまたは方法HTMLをパーサーに使用し、応答から必要なものを取得する必要があります。注:httpclientをJavaで使用しています

役に立ちましたか?

解決

使用する jsoup.

jsoup 現実世界のHTMLを使用するためのJavaライブラリです。最適なDOM、CSS、およびjQueryのような方法を使用して、データを抽出および操作するための非常に便利なAPIを提供します。

jsoup WhatWG HTML5仕様を実装し、HTMLを最新のブラウザと同じDOMに解析します。

  • URL、ファイル、または文字列からHTMLをこすり、解析する
  • Dom TraversalまたはCSSセレクターを使用して、データを見つけて抽出します
  • HTML要素、属性、およびテキストを操作します
  • XSS攻撃を防ぐために、安全なホワイトリストに対してユーザーがサビされたコンテンツをきれいにします
  • 出力Tidy HTML

JSOUPは、野生で見つかったあらゆる種類のHTMLを扱うように設計されています。手付かずの検証から、無効なタグスープまで。 JSOUPは賢明な解析ツリーを作成します。

他のヒント

私は与えるでしょう htmlcleaner 試してみてください。

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

使用できます XPath htmlcleanerがxml/htmlタグ内でコンテンツを取得するために
XPathの例

JSOUPとJava8を使用したサンプルコード:

// 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();
...
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top