web-dev-qa-db-ja.com

JsoupドキュメントをHTMLファイルに保存する方法

このメソッドを使用して、Webページを_org.jsoup.nodes.Document_オブジェクトに取得しました。

myDoc = Jsoup.connect(myURL).ignoreContentType(true).get();

このオブジェクトをHTMLファイルに書き込むにはどうすればよいですか?メソッドmyDoc.html()myDoc.text()およびmyDoc.toString()は、ドキュメントのすべての要素を出力するわけではありません。

Javascript要素の一部の情報は、解析中に失われる可能性があります。たとえば、Instagramメディアページのソースの「timestamp」。

18
Ali Khezeli

無視される要素があるという事実は、Jsoupによる正規化の試みによるものであるに違いありません。

正規化を行わずにサーバーの正確な出力を取得するには、これを使用します。

Connection.Response html = Jsoup.connect("PUT_URL_HERE").execute();
System.out.println(html.body());
7
Alkis Kalogeris

doc.outerHtml()を使用します。

import org.Apache.commons.io.FileUtils;

public void downloadPage() throws Exception {
        final Response response = Jsoup.connect("http://www.example.net").execute();
        final Document doc = response.parse();

        final File f = new File("filename.html");
        FileUtils.writeStringToFile(f, doc.outerHtml(), "UTF-8");
    }

例外をキャッチすることを忘れないでください。依存関係を追加するか、Apache commons-ioライブラリをダウンロードして、UTF-8形式でファイルを簡単かつ迅速に保存します。

18
Gondy