为何调用Jsoup.parse(URL字符串)返回不完整HTML文档?
问题根源与解决方案
你遇到的问题其实是用错了Jsoup的方法!
为什么会返回不完整的内容?
你调用的Jsoup.parse("https://www.example.com"),其中parse(String html)方法的设计初衷是解析一段HTML字符串,而不是通过URL抓取网页。当你直接传入网址时,Jsoup会把这个网址当成纯文本内容来处理,自然就只会生成一个包含该URL的简单HTML结构,根本不会去请求目标网页。
正确的做法:用Jsoup.connect()抓取网页
要获取目标网站的完整HTML内容,你需要使用Jsoup.connect(String url).get()方法,这个方法会帮你发起HTTP请求,获取网页的真实HTML代码后再解析成Document对象。
修改后的代码应该是这样的:
System.out.println(Jsoup.connect("https://www.example.com").get());
运行这段代码,你就能看到包含两个<p>标签的完整页面内容了。
额外小提示
如果遇到网站有反爬机制(比如拒绝无User-Agent的请求),可以给请求添加模拟浏览器的请求头,比如:
Document doc = Jsoup.connect("https://www.example.com") .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36") .timeout(5000) // 设置5秒超时 .get(); System.out.println(doc);
内容的提问来源于stack exchange,提问作者Bar Akiva
相关产品推荐
相关产品推荐

