Javaネットワーク爬虫類(五)--Jsoupの使用


前の章では、HttpClientの基本的な使用についてまとめました.また、一般的にログインする必要があるサイトについて、どのようにシミュレーションログインを行うかについても一定の理解があります.つまり、前のいくつかの勉強を通じて、HttpClientを通じてサイトにアクセスし、どのようにページに戻るかを知っています.しかし、爬虫類の需要は一般的にhtmlの中で私たちが望んでいる情報を抽出して、私たちはホームページのhtmlを得て、今どうすればいいですか?Jsoupを使って、htmlを解析して、htmlの構造はJsoupの中でも1つの木の構造で、その中のラベルは1つのノードで、私达がしなければならないのはこれらのノードの中で私达の必要な情報を抽出することです.
html構造に疑問があるのは、私がまとめたこのブログJavaネットワーク爬虫類-HTML DOM(HTMLベース)を見てみましょう.
JsoupでWebソースを返す
前にHttpClientを使用するとページのソースコードを返すことができ、解析的に使用することができますが、HttpClientを使用してページのソースコードを返すには、クライアントを構築し、要求を構築することがよくあります.(ブラウザの動作をシミュレートする)、要求を実行し、ソースコードを返すなどの複数のステップがあります.これにより、効率が低下し、コードも冗長になり、迅速で便利なアクセスが得られます.1つのページに対して何度も要求しなければ、Jsoupを使用してWebソースコードを返すことができます.
Document document = Jsoup.connect(url).timeout(10000).get();

このコードはurlを要求するウェブソースコードを返し、ディレクトリツリーのフォーマットが格納され、timeoutはms単位で要求され、10 s以内にウェブ要求が反映されなければ異常処理を行う.
Jsoupによるhtml文字列の解析
一般的に、HttpClientを使用してWebページのリクエストを行い、Webページの実体コンテンツを取得した後、文字列として返されます.この場合、Jsoupを解析する必要があります.具体的なコードは以下の通りです.
Document document = Jsoup.parse(html);

parse(String html,String baseUri)という方法も使えます.入力したHTMLを新しいドキュメント(Document)として解析することができ、パラメータbaseUriは相対URLを絶対URLに変換し、どのサイトからドキュメントを取得するかを指定するために使用されます.この方法では、使用する必要があるときに自然にその用途がわかります.ここではあまり文字の説明はしません.
Jsoupを使用して1つのファイルからドキュメントをロード
もし私たちが今ウェブページからソースコードを取得するのではなく、私たちのパソコンのローカルにhtmlドキュメントがあるとしたら、それを解析する必要があります.静的Jsoupを使用することができます.parse(File in,String charsetName,String baseUri)メソッド:
File file = new File("/tmp/example.html");
Jsoup.parse(file, "utf8", "http://... ...");

parse(File in,String charsetName,String baseUri)この方法は、HTMLファイルをロードおよび解析するために使用されます.ファイルのロード中にエラーが発生した場合は、IOExceptionを放出し、適切な処理を行う必要があります.
baseUriパラメータは、ファイル内のURLsが相対パスであるという問題を解決するために使用されます.空の文字列を入力する必要がない場合.
ファイルのパスをbaseUriとして使用するparse(File in,String charsetName)もあります.この方法は、解析されたファイルがウェブサイトにあるローカルファイルシステムに適用され、関連リンクもファイルシステムを指す.
注:この文章の一部の内容はJsoupを使ってネット爬虫類を実現することを参考にして、感謝します~