java—当我用jsoup解析时,标记的内容消失了

3ks5zfa0  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(520)

我在学习兵团图书馆。他面临着困难。在chrome开发者工具中看到的标签在解析时消失。帮助我。
在此处输入图像描述
在此处输入图像描述
缺少id为cbox\u module的div标记的内容。告诉我如何获取此标签的内容。
这是我的密码

public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    String url = "https://comic.naver.com/webtoon/detail.nhn?titleId=597447&no=364&weekday=sat";
    String address = "https://comic.naver.com/comment/comment.nhn?titleId=651673&no=514";

    Document doc = Jsoup.connect(address).get();
    Elements el = doc.select("#cbox_module");

    System.out.println(doc);
    System.out.println(el);
}

如果我的英语不好,我很抱歉。我是外国人,我在用翻译。

yduiuuwa

yduiuuwa1#

不完全确定你要提取什么,但你要 cbox_module 哪一个元素是 <body> 标签。
通过chrome工具中的“网络”选项卡,我可以看到一个请求:

https://apis.naver.com/commentBox/cbox/web_naver_list_jsonp.json?ticket=comic&templateId=webtoon&pool=cbox3&_callback=jQuery112408278558406808354_1605604312744&lang=ko&country=KR&objectId=651673_514&categoryId=&pageSize=15&indexSize=10&groupId=&listType=OBJECT&pageType=default&page=1&initialize=true&userType=&useAltSort=true&replyPageSize=10&_=1605604312745

它返回填充页面中注解的json,从而使您能够更直接地访问可能需要的数据。
大多数查询参数都在收到的初始html响应中,但有一个查询参数不是。。。
_callback=jQuery112408278558406808354_1605604312744 1605604312744 -是unix时间戳,使用
int now = Integer.parseInt(String.valueOf(LocalDateTime.now().toEpochSecond(ZoneOffset.UTC))); jQuery112408278558406808354 -这很难理解是如何计算的,但是,从脚本来看:

...
 n.extend({
        expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
...
``` `.replace(/\D/g, "")` -删除所有非数字-所以是一个随机数。 `m` 是 `"1.12.4"` 在脚本的顶部(可能是正在使用的jquery版本)。。。所以我们最后得到一个随机数
1124 + `0.9999999...` (一些随机值)(删除 `.` 因为它是一个非数字),我们得到随机的 `_callback` 参数值(16位小数)。
这来自:https://comic.naver.com/aggregate/javascript/release/comic_comment_20201113103349.js
我试过这个,但没用。所以我对它的工作原理有点困惑。我在某处看到了一个.tolowercase,当我在url+查询参数上这样做时,我得到一个“partner not recognized”错误。。。显然不太对劲。
我想试试 `HtmlUnit` 因为它支持javascript,所以这可能会简单得多。

相关问题