У меня есть постоянные проблемы с анализом HTML-страницы для длинных тэгов с помощью Jsoup.В моем случае я пытаюсь извлечь элементы <ytd-video-renderer>
со страницы поиска YouTube.Тем не менее, многие способы я пробую.Надежный или непустой список не возвращается.
То, что я пробовал до сих пор, каждое для объекта HTML-документ doc
.
.select("ytd-video-renderer")
(безрезультатно,список пуст.)
.getElementsByClass("ytd-item-section-renderer")
(класс встречается только в ytd-video-renderer
)
.select("ytd-video-renderer.ytd-item-section-renderer")
.select("ytd-video-renderer[class*=ytd-item-section-renderer]")
.select("div#dismissable)
(единственный div в ytd-video-renderer
)
И многое другое с параметрами ...
Я также сделал снимок для любых других тегов, но у меня те же проблемы.
самое близкое, к чему я пришел, было: .select(a[href*=watch])
.Это возвращает все заголовки видео.Но, к сожалению, также некоторые другие ссылки с другим текстом.Это ненадежно.
У меня установлена Java 8 и последняя версия Jsoup.
Вот код, реализующий Jsoup:
public class SearchPage {
private Document doc;
public SearchPage(String url){
try {
doc = Jsoup.connect(url).get();
} catch (IOException ex) {
//taking care of my error cats
}
}
public Elements test(){ //just to test
return doc.getElementsByTag("ytd-item-renderer");
}
}
Пример того, что я пытаюсь сделатьИзвлечение: Изображение блоков HTML, которые я ищу
Кажется, что я что-то упускаю, так как многие говорят, что Jsoup потрясающий и простой ... (не в моем случаезатем: v)
Я хотел бы видеть каждый элемент, который я запрашиваю в списке.Далее я хочу снова проанализировать каждый элемент, но давайте сначала решим это.Надеюсь, это даст мне ноу-хау, чтобы решить все остальное.Прямо сейчас я получаю пустой список каждый раз.
Большое спасибо.