Как сохранить документ Jsoup в файл HTML?
Я использовал этот метод для извлечения веб-страницы в объект org.jsoup.nodes.Document
:
myDoc = Jsoup.connect(myURL).ignoreContentType(true).get();
Как мне записать этот объект в файл HTML? Методы myDoc.html()
, myDoc.text()
и myDoc.toString()
не выводят все элементы документа.
Некоторая информация в элементе javascript может быть потеряна при его анализе. Например, "timestamp" в источнике медиа-страницы Instagram.
Ответы
Ответ 1
Тот факт, что есть элементы, которые игнорируются, должен быть связан с попыткой нормализации Jsoup.
Чтобы получить точный вывод на сервер без какой-либо формы нормализации, используйте это.
Connection.Response html = Jsoup.connect("PUT_URL_HERE").execute();
System.out.println(html.body());
Ответ 2
Используйте 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.