Java で HTML を解析する
HTML ファイルを扱うプログラムを作成している場合、HTML ファイルを効率的に解析する方法を見つける必要があるかもしれません。 最も使用されている Web スクレイピング ツールである Jsoup
を使用して、Java プログラミング言語を介して HTML ファイルをすばやく解析できます。
この記事では、HTML ファイルを解析する方法について説明します。 また、トピックを簡単にするために必要な例と説明を提供して、トピックについて説明します。
JavaでのJsoup
の働き
Jsoup
は、Web ページの HTML ファイルを解析し、それを Document
オブジェクトに変換することによって機能します。 これは、DOM
のプログラムによる表現と言えます。
Jsoup
の parse
という名前のメソッドが Document
を作成します。 以下では、Jsoup
の機能の一部について説明します。
parse(File MyFile, @Nullable String charsetName)
- HTML ファイルの解析に使用されます。parse(InputStream in, @Nullable String CharsetName, String BaseUri)
-InputStream
を読み取り、解析します。parse(String html)
- HTML 文字列を解析するために使用されます。
Jsoup
を使用して Java で HTML を解析する
以下の例では、Jsoup
を使用して Web サイトを解析します。 この例の Java コードは次のようになります。
// importing necessary packages
package javaparsehtml;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JavaParseHtml {
public static void main(String[] args) {
URL MyUrl;
try {
// Providing the URL of the website
MyUrl = new URL("https://www.example.com");
HttpURLConnection MyConnection;
try {
// Create an Http connection
MyConnection = (HttpURLConnection) MyUrl.openConnection();
// Defining the request format
MyConnection.setRequestProperty("accept", "application/json");
try {
// Create a response stream
InputStream ResponseStream = MyConnection.getInputStream();
// Parsing the website
Document MyDoc = Jsoup.parse(ResponseStream, "UTF-8", "https://www.example.com");
// Showing the output as HTML
System.out.println(MyDoc.html());
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
上記の例では、HTML ファイルを解析する方法を示しており、各行の目的は既に指示されています。
この例では、提供された URL に基づいて HTTP 接続を作成し、要求されたプロパティを定義しました。 その後、InputStream
を作成し、Web サイトを解析しました。
最後に、Web サイトを出力として印刷します。 上記の Java プログラムを実行すると、次のような出力が得られます。
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8">
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
ここで重要な注意点として、Jsoup
の jar
ファイルをインストールまたはインクルードしていない場合は、最初にプロジェクト ディレクトリに jar
ファイルをインクルードするか、パッケージをインストールする必要があります。 そうしないと、エラーが発生する可能性があります。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn