WebページのコンテンツをJavaの文字列に読み込む方法は?
Javaを使用して、いくつかの方法でWebページのコンテンツを読み取ることができます。ここでは、そのうちの3つについて説明します。
openStream()メソッドの使用
URL java.netパッケージのクラスは、ワールドワイドウェブ内のリソース(ファイル、ディレクトリ、または参照)を指すために使用されるUniformResourceLocatorを表します。
openStream() このクラスのメソッドは、現在のオブジェクトによって表されるURLへの接続を開き、URLからデータを読み取ることができるInputStreamオブジェクトを返します。
したがって、(URLクラスを使用して)Webページからデータを読み取るには-
-
目的のWebページのURLをパラメーターとしてコンストラクターに渡すことにより、java.net.URLクラスをインスタンス化します。
-
openStream()メソッドを呼び出し、InputStreamオブジェクトを取得します。
-
上記で取得したInputStreamオブジェクトをパラメーターとして渡して、Scannerクラスをインスタンス化します。
例
import java.io.IOException; import java.net.URL; import java.util.Scanner; public class ReadingWebPage { public static void main(String args[]) throws IOException { //Instantiating the URL class URL url = new URL("https://www.something.com/"); //Retrieving the contents of the specified page Scanner sc = new Scanner(url.openStream()); //Instantiating the StringBuffer class to hold the result StringBuffer sb = new StringBuffer(); while(sc.hasNext()) { sb.append(sc.next()); //System.out.println(sc.next()); } //Retrieving the String from the String Buffer object String result = sb.toString(); System.out.println(result); //Removing the HTML tags result = result.replaceAll("<[^>]*>", ""); System.out.println("Contents of the web page: "+result); } }
出力
<html><body><h1>Itworks!</h1></body></html> Contents of the web page: Itworks!
HttpClientの使用
Httpクライアントは転送ライブラリであり、クライアント側に常駐し、HTTPメッセージを送受信します。最近のHTTP標準を満たす、最新の機能豊富で効率的な実装を提供します。
(Httpプロトコルの)GET要求は、指定されたURIを使用して指定されたサーバーから情報を取得するために使用されます。 GETを使用するリクエストは、データのみを取得する必要があり、データに他の影響を与えることはありません。
HttpClient APIは、getrequestメソッドを表すHttpGetという名前のクラスを提供します。 GETリクエストを実行し、Webページのコンテンツを取得するには-
-
createDefault() HttpClientsクラスのメソッドは、HttpClientインターフェイスの基本実装であるCloseableHttpClientオブジェクトを返します。このメソッドを使用して、HttpClientオブジェクトを作成します。
-
HttpGetクラスをインスタンス化して、HTTPGETリクエストを作成します。このクラスのコンストラクターは、リクエストの送信先となるWebページのURIを表す文字列値を受け入れます。
-
execute()を呼び出して、HttpGetリクエストを実行します。 メソッド。
-
応答からWebサイトのコンテンツを表すInputStreamオブジェクトを-
として取得します。
httpresponse.getEntity().getContent()
例
import java.util.Scanner; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class HttpClientExample { public static void main(String args[]) throws Exception{ //Creating a HttpClient object CloseableHttpClient httpclient = HttpClients.createDefault(); //Creating a HttpGet object HttpGet httpget = new HttpGet("https://www.something.com/"); //Executing the Get request HttpResponse httpresponse = httpclient.execute(httpget); Scanner sc = new Scanner(httpresponse.getEntity().getContent()); //Instantiating the StringBuffer class to hold the result StringBuffer sb = new StringBuffer(); while(sc.hasNext()) { sb.append(sc.next()); //System.out.println(sc.next()); } //Retrieving the String from the String Buffer object String result = sb.toString(); System.out.println(result); //Removing the HTML tags result = result.replaceAll("<[^>]*>", ""); System.out.println("Contents of the web page: "+result); } }
出力
<html><body><h1>Itworks!</h1></body></html> Contents of the web page: Itworks!
Jsoupライブラリの使用
Jsoupは、HTMLベースのコンテンツを処理するJavaベースのライブラリです。 DOM、CSS、jqueryに似た最高のメソッドを使用して、データを抽出および操作するための非常に便利なAPIを提供します。 WHATWG HTML5仕様を実装し、HTMLを最新のブラウザと同じDOMに解析します。
Jsoupライブラリを使用してWebページのコンテンツを取得するには-
-
connect() Jsoupクラスのメソッドは、WebページのURLを受け入れ、指定されたWebページに接続して、接続オブジェクトを返します。 connect()を使用して目的のWebページに接続します メソッド。
-
Connectionインターフェースのget()メソッドは、GET要求を送信/実行し、HTMLドキュメントをDocumentクラスのオブジェクトとして返します。 get()メソッドを呼び出して、ページにGETリクエストを送信します。
-
取得したドキュメントの内容を-
として文字列に取得します
String result = doc.body().text();
例
import java.io.IOException; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static void main(String args[]) throws IOException { String page = "https://www.something.com/"; //Connecting to the web page Connection conn = Jsoup.connect(page); //executing the get request Document doc = conn.get(); //Retrieving the contents (body) of the web page String result = doc.body().text(); System.out.println(result); } }
出力
It works!
-
JavaでCSVファイルからデータを読み取る方法は?
CSV カンマ区切り値の略です 。 CSVファイルでは、各行にカンマ(、)で区切られた単語が含まれています そしてそれは 。csvとともに保存されます 拡張機能。 readLine()を使用して、CSVファイルを1行ずつ読み取ることができます BufferedReaderのメソッド クラス。各行をコンマ文字で分割して、その行の単語を配列に入れます。これで、配列を反復処理するか、適切なインデックスを使用して、配列の内容を簡単に印刷できます。 CSVファイル 例 import java.io.*; public class CSVReaderTest { p
-
Javaのプロパティファイルからデータを読み取る方法は?
プロパティ はHashtableクラスのサブクラスであり、プロパティの永続的なセットを表します。 プロパティ ストリームに保存することも、ストリームからロードすることもできます。プロパティリストの各キーとそれに対応する値は文字列です。 プロパティ ファイルをJavaで使用して、構成を外部化し、キーと値のペアを保存できます。 。 Properties.load()メソッド ofPropertiesクラスはロードに便利です。プロパティ key-valueの形式のファイル ペア 。 構文 public class Properties extends Hashtable credential