まえがき: ほとんどすべての言語で HTML ハイパーテキストを解析および走査できます。私がよく使用する言語は php ですが、Android クライアントでネットワーク http データを取得したいと考えています。php は使用できますが、セカンダリ接続と PHP 環境が必要です。しかし、それを行うには Java 言語を使用するだけで、Java ネイティブ言語を直接使用してコーディングすることは不可能です。解析には Jsoup を使用します。Jsoup は Java 言語で HTML ドキュメントを解析するための優れたツールです。
Jsoup の概要Jsoup は、HTML を解析し、Java 言語でドキュメントを走査するための優れたツールです。
Jsoup の利点 そのパーサーは、HTML 形式が完全かどうかに関係なく、提供された HTML ドキュメントからクリーンな解析結果を作成するために最善を尽くします。たとえば、以下を処理できます:
没有关闭的标签 <p>Lorem <p>Ipsum parses to <p>Lorem</p> <p>Ipsum</p>
隐式标签 <td>Table data</td>包装成<table><tr><td>
创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)
一般的な Jsoup メソッド URL からドキュメントをロードする
简单的get方法Document doc = Jsoup.connect("http://www.domain.com/").get();String title = doc.title();
带头信息的post方法Document doc = Jsoup.connect("http://www..domain.com") .data("username", "Alic") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post();
ファイルから HTML ドキュメントをロードする
File file = new File("path");Document doc = Jsoup.parse(file, "UTF-8", "http://www.domian.com/");
文字列から HTML をロードするだけ
Document doc = Jsoup.parse(String html);
ドムドキュメントをトラバースするメソッド
File file = new File("/path/index.html");Document doc = Jsoup.parse(file, "UTF-8", "http://www.domian.com/");Element content = doc.getElementById("content");//获取id为content的dom节点Elements links = content.getElementsByTag("a");//获取所有的a标签dom节点//遍历所有的a标签for (Element link : links) { String linkHref = link.attr("href"); String linkText = link.text();}Elements links = doc.select("a[href]"); //带有href属性的a元素Elements pngs = doc.select("img[src$=.png]"); //扩展名为.png的图片Element masthead = doc.select("div.masthead").first(); //class等于masthead的div标签Elements resultLinks = doc.select("h3.r > a"); //在h3元素之后的a元素
よく使用されるメソッド: Jsoup を転送するには、公式 Web サイトの API ドキュメントを参照してください