#java #jsoup
#java #jsoup
Вопрос:
Я изучаю библиотеку jsoup. И он столкнулся с трудностями. Тег, отображаемый в инструменте разработчика Chrome, исчезает при анализе. Помогите мне.
введите описание изображения здесь
введите описание изображения здесь
Содержимое тега div с идентификатором cbox_module отсутствует. Подскажите, как получить содержимое этого тега.
и это мой код
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String url = "https://comic.naver.com/webtoon/detail.nhn?titleId=597447amp;no=364amp;weekday=sat";
String address = "https://comic.naver.com/comment/comment.nhn?titleId=651673amp;no=514";
Document doc = Jsoup.connect(address).get();
Elements el = doc.select("#cbox_module");
System.out.println(doc);
System.out.println(el);
}
Прошу прощения, если мой английский был плохим. Я иностранец, и я использую переводчик.
Комментарии:
1. Какой необработанный HTML-код вы анализируете?
2. Я попытался проанализировать HTML этого адреса и получить комментарии. comic.naver.com/webtoon /…
3. укажите URL-адрес, а также проверьте некоторые другие ответы под
[jsoup]
тегом, поскольку я недавно ответил многим с некоторым описанием того, как я это делаю… вкладка сеть полезна для просмотра содержимого данного http-запроса. Также можете ли вы предоставить код, с которым вы пытаетесь это сделать до сих пор?4. спасибо за обновление — теперь будет легче взглянуть
Ответ №1:
Не совсем уверен, что вы хотите извлечь здесь, но вы берете тот cbox_module
, который является самым первым элементом после <body>
тегов.
Просматривая вкладку сеть в chrome tools, я вижу запрос на:
https://apis.naver.com/commentBox/cbox/web_naver_list_jsonp.json?ticket=comicamp;templateId=webtoonamp;pool=cbox3amp;_callback=jQuery112408278558406808354_1605604312744amp;lang=koamp;country=KRamp;objectId=651673_514amp;categoryId=amp;pageSize=15amp;indexSize=10amp;groupId=amp;listType=OBJECTamp;pageType=defaultamp;page=1amp;initialize=trueamp;userType=amp;useAltSort=trueamp;replyPageSize=10amp;_=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
Я пытался с этим, но это не сработало. Так что я немного озадачен тем, как это работает. Я увидел .Где-то в нижнем регистре, и когда я делаю это с параметрами URL query, я получаю ошибку «партнер не распознан» … что-то явно не совсем правильно.
Я бы попробовал, HtmlUnit
поскольку он поддерживает Javascript — это может сделать это намного проще.