Java 如何解析HTML文档中的元素列表';标记名';使用Jsoup?
我在使用Jsoup解析长标记名的HTML页面时遇到了一些问题。 在我的例子中,我试图从youtube搜索页面中提取Java 如何解析HTML文档中的元素列表';标记名';使用Jsoup?,java,jsoup,Java,Jsoup,我在使用Jsoup解析长标记名的HTML页面时遇到了一些问题。 在我的例子中,我试图从youtube搜索页面中提取元素。不管我有多少种尝试。没有返回可靠的或非空的列表 到目前为止,我已经尝试了一些东西,每个都是针对HTML文档对象doc 。选择(“ytd视频渲染器”)(无效,列表为空。) .getElementsByClass(“ytd项目节渲染器”)(仅在ytd视频渲染器中出现的类) 。选择(“ytd视频渲染器.ytd项目节渲染器”) 。选择(“ytd视频渲染器[类*=ytd项目部分渲染器]”
元素。不管我有多少种尝试。没有返回可靠的或非空的列表
到目前为止,我已经尝试了一些东西,每个都是针对HTML文档对象doc
。选择(“ytd视频渲染器”)
(无效,列表为空。)
.getElementsByClass(“ytd项目节渲染器”)
(仅在ytd视频渲染器中出现的类)
。选择(“ytd视频渲染器.ytd项目节渲染器”)
。选择(“ytd视频渲染器[类*=ytd项目部分渲染器]”)
。选择(“div#dismissable)
(年初至今视频渲染器下的唯一div
)
还有更多的参数
我还尝试了其他标签,但我也遇到了同样的问题
我最近的一次成功是:。选择(a[href*=watch])
。这将返回所有视频标题。但遗憾的是,还有一些其他文本链接。因此不可靠
我已经安装了Java8和最新版本的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");
}
}
我试图提取的内容示例:
就像很多人说Jsoup很棒而且简单一样,我似乎错过了一些东西…(我的情况不是这样:v)
我想看到的是列表中我要求的每个元素。接下来我想再次解析每个元素,但让我们先解决这个问题。希望这能让我知道如何解决其余的问题。现在我每次都得到一个空列表
非常感谢。您正在查看的Youtube搜索页面的内容由您的浏览器通过Javascript呈现将只获取页面的HTML内容,不会执行任何Javascript。如果您使用cURL或其他命令行工具请求页面,您将发现您要查找的元素不在那里
我不确定您的目标到底是什么,但您可能想查看一下,看看是否有更简单的方法来实现您的目标。您正在查看的Youtube搜索页面的内容由您的浏览器通过Javascript呈现。行
Jsoup.connect(url).get()
将只获取页面的HTML内容,不会执行任何Javascript。如果您使用cURL或其他命令行工具请求页面,您将发现您要查找的元素不在那里
我不确定你的目标到底是什么,但你可能想看看是否有更简单的方法来做你想做的事。非常感谢。似乎就是这样。我正在研究其他方法,YouTube API在这里可能确实工作得更好。非常感谢。似乎就是这样。我正在研究其他方法hods和YouTube API在这里可能确实工作得更好。