为什么用jsoup抓取网页,返回的html不全


想问下为什么java用jsuop包解析网页的html代码中<div id = "app">...</div>中间部分缺失。代码如下:

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import java.io.IOException;

public class test {

public static void main(String[] args) throws IOException {

//获取请求

//前提 需要联网

String url = "https://i.snssdk.com/ugc/hotboard_fe/hot_list/template/hot_list/forum_tab.html";

//解析网页(Jsoup返回Document就是浏览器Document对象)

Document document = Jsoup.connect(url).timeout(5000000).maxBodySize(0).get();

System.out.println(document.html());

// System.out.println(document.html());

Element element = document.getElementById("app");

Elements elements = element.getElementsByTag("div");

// Elements elements = document.getElementsByClass("area-chart-table-row");

for (Element e1 : elements) {

System.out.println(e1);

}

// System.out.println(element);

//获取所有的li标签

// Elements elements = element.getElementsByTag("div");

//获取元素的内容

// for (Element e1 : elements) {

// String img = e1.getElementsByTag("img").eq(0).attr("source-data-lazy-img");

// String price = e1.getElementsByClass("area-chart-header-item confirmed-province").eq(0).text();

// String title = e1.getElementsByClass("p-name").eq(0).text();

// System.out.println("============================================");

// System.out.println(img);

// System.out.println(price);

// System.out.println(title);

// }

}

}

解析的网页地址为https://i.snssdk.com/ugc/hotb...


回答:

这是js渲染的,你右键查看源码,是真正的html代码,那个div是不含内容的。
浏览器加载js后,js渲染的html。

这种抓数据反而简单,直接抓接口就行,连解析都不需要。


回答:

React单页面应用;是在浏览器中渲染出来的;<div id = "app">...</div>中间的内容是在浏览器中渲染出来的,直接通过url获取的html缺少浏览器渲染

以上是 为什么用jsoup抓取网页,返回的html不全 的全部内容, 来源链接: utcz.com/p/944164.html

回到顶部