1. ホーム
  2. java

[解決済み】JavaでHTMLを効率的にパースするには?

2022-04-16 11:23:41

質問

私は仕事柄、HTMLの解析を多く行っています。今まではHtmlUnitのヘッドレスブラウザを使って解析とブラウザの自動化をしていました。

今、私はこの2つの作業を分離したいのです。

HtmlUnitでは、まずページを読み込み、ソースを取得し、それをパースするのに多くの時間がかかるので、軽いHTMLパーサーを使いたいのです。

HTMLを効率的に解析できるHTMLパーサーを知りたいのですが。必要なのは

  1. 速度
  2. HtmlElementのquot;id" やquot;name" 、タグタイプ" による検索を容易にします。

汚れたHTMLコードをクリーニングしてくれなければ、私はそれでいいと思っています。私はHTMLソースをきれいにする必要はありません。私はただ、HtmlElementsを横断して移動し、そこからデータを採取する最も簡単な方法が必要なのです。

解決方法は?

セルフ・プラグ:新しいJava HTMLパーサーをリリースしました。 jsoup . ここで紹介するのは、あなたが求めているものを実現できると思うからです。

そのパーティー・トリックは、要素を見つけるためのCSSセレクタ構文です。

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
Element head = doc.select("head").first();

をご覧ください。 セレクタ javadocでご確認ください。

これは新しいプロジェクトなので、改善のためのアイデアは大歓迎です。