HTMLからデータとリソースを抽出

Aspose.HTML for Java は、ファイル、URL、文字列、またはストリームからHTMLをHTMLDocumentに読み込みます。JavaアプリケーションはDOMを調べ、要素を選択し、テキストや属性を読み取り、相対URLを解決して、必要な値やリンクされたリソースを保存できます。

必要な情報がドキュメント構造に含まれている場合は、DOMメソッド、CSSセレクター、またはXPath式を使用します。要素が画像、SVGファイル、スタイルシートなどのリソースを参照している場合は、解決したURLとネットワークサービスを使用してバイトをダウンロードします。これにより、HTML解析とリソース取得を分離し、アプリケーションに必要なデータだけを抽出できます。


Javaデータ抽出タスクを選択

取得するコンテンツまたはリソースの種類に合った例を選択してください。

Webサイトの画像を抽出

画像要素を検出し、相対URLを絶対URLに解決して、参照されている画像ファイルを保存します。

WebサイトのSVGを抽出

インラインSVGマークアップを保存し、HTMLページが参照する外部SVGリソースをダウンロードします。

URLからファイルをダウンロード

既知のリソースURLにリクエストを送信し、レスポンスを確認して、取得したバイトをローカルファイルに書き込みます。


JavaでHTMLからリンクを抽出

この例ではHTMLページを読み込み、各リンクのhref属性を取得し、相対参照をドキュメントURLに基づいて解決して、重複のないHTTPおよびHTTPSリンクをoutput/links.txtに書き込みます。同じ選択方法をテキスト、メタデータ、フォーム値、リソース属性の抽出にも利用できます。

JavaでHTMLからリンクを抽出

Path outputPath = Paths.get("output", "links.txt");
Files.createDirectories(outputPath.getParent());

try (HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/java/")) {
    HTMLCollection anchors = document.getElementsByTagName("a");
    Set<String> links = new LinkedHashSet<>();
    Iterator<Element> iterator = anchors.iterator();

    while (iterator.hasNext()) {
        Element anchor = iterator.next();
        String href = anchor.getAttribute("href");
        if (href.isEmpty()) {
            continue;
        }

        Url linkUrl = new Url(href, document.getBaseURI());
        String protocol = linkUrl.getProtocol();
        if ("http:".equals(protocol) || "https:".equals(protocol)) {
            links.add(linkUrl.getHref());
        }
    }

    Files.write(outputPath, links, StandardCharsets.UTF_8);
}

HTMLからリンクを抽出する手順

  1. HTMLDocument クラスでソースを読み込みます。
  2. getElementsByTagName("a")でリンク要素を選択します。
  3. 各href属性を読み取り、空の値を除外します。
  4. Url クラスとドキュメントのベースURIを使用して、相対参照を絶対URLに解決します。
  5. HTTPおよびHTTPSリンクだけを残し、重複を削除して、コレクションをテキストファイルに保存します。

DOM、CSSセレクター、XPathでHTMLデータを検索

ソースドキュメントの構造に合った選択方法を使用します。

  • DOMコレクション – 既知のタグを持つすべての要素が必要な場合はgetElementsByTagName()を使用します。
  • CSSセレクター – 最初の一致にはquerySelector()、すべての一致にはquerySelectorAll()を使用します。
  • XPath – 階層、属性、またはテキスト条件に基づく選択をCSSセレクターで表現しにくい場合にXPath式を使用します。
  • リソースURL – srcやhrefなどの属性を読み取り、ドキュメントのベースURIに基づいて解決し、アプリケーションに必要なファイルだけをリクエストします。

DOM、CSSセレクター、XPathの例については HTML Navigation を、リソース抽出の例については Data Extraction ドキュメントを参照してください。


HTMLデータ抽出に関するよくある質問

1. Aspose.HTML for JavaはWebページ全体を保存せずに必要なデータだけを抽出できますか?

はい。ソースをHTMLDocumentに読み込み、必要なノードだけを選択して、そのテキスト、属性、または参照リソースを保存します。ページ全体のコピーを保存する必要はありません。

2. Javaで特定のHTML要素だけを抽出するにはどうすればよいですか?

既知のタグにはgetElementsByTagName()、CSSベースの一致にはquerySelector()またはquerySelectorAll()を使用します。ドキュメント階層、属性、テキスト条件に基づいて選択する場合はXPathを使用します。

3. Aspose.HTML for JavaはHTMLテーブルの行とセルを抽出できますか?

はい。DOMからtable、tr、th、td要素を選択し、そのテキストと属性をJavaアプリケーションで必要なデータ構造に割り当てます。

4. Aspose.HTML for Javaはデータ抽出に無料で使用できますか?

Aspose.HTML for Javaは商用ライブラリです。購入前に 評価版 をダウンロードし、 一時ライセンス を申請すると、評価モードの制限なしでデータ抽出をテストできます。


Aspose.HTML for Java をインストール

Aspose の公式リポジトリから Aspose.HTML for Java を追加します。ASPOSE_HTML_VERSION を Aspose.HTML for Java releases ページにある正確なバージョンに置き換え、依存関係を解決するためにプロジェクトを再読み込みまたは再ビルドしてください。

Maven プロジェクトにリポジトリと依存関係を追加します。

Maven – pom.xml

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <url>https://releases.aspose.com/java/repo/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-html</artifactId>
        <version>ASPOSE_HTML_VERSION</version>
    </dependency>
</dependencies>

Gradle プロジェクトにリポジトリと依存関係を追加します。

Gradle – build.gradle

repositories {
    maven {
        url = uri('https://releases.aspose.com/java/repo/')
    }
}
dependencies {
    implementation 'com.aspose:aspose-html:ASPOSE_HTML_VERSION'
}

選択したリリースと互換性のある JDK を使用してください。JAR の手動インストール、Kotlin DSL、更新、依存関係のトラブルシューティングについては、 Install Aspose.HTML for Java を参照してください。

Aspose.HTML for Javaの関連タスク

HTMLドキュメントの作成、変換、結合、処理に関するJavaガイドも参照できます。