我使用此方法将网页检索到org.jsoup.nodes.Document
对象:
myDoc = Jsoup.connect(myURL).ignoreContentType(true).get();
我应该如何将此对象写入HTML文件?
方法myDoc.html()
,myDoc.text()
和myDoc.toString()
不会输出文档的所有元素。
javascript元素中的某些信息在解析时可能会丢失。例如,Instagram媒体页面源中的“timestamp”。
答案 0 :(得分:14)
使用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格式的文件。
答案 1 :(得分:6)
有些元素被忽略的事实必须归功于Jsoup的规范化尝试。
为了在没有任何形式的规范化的情况下获得服务器的确切输出,请使用此功能。
Connection.Response html = Jsoup.connect("PUT_URL_HERE").execute();
System.out.println(html.body());