Java 如何解析HTML文档中的元素列表';标记名';使用Jsoup?

Java 如何解析HTML文档中的元素列表';标记名';使用Jsoup?,java,jsoup,Java,Jsoup,我在使用Jsoup解析长标记名的HTML页面时遇到了一些问题。 在我的例子中,我试图从youtube搜索页面中提取元素。不管我有多少种尝试。没有返回可靠的或非空的列表 到目前为止,我已经尝试了一些东西,每个都是针对HTML文档对象doc 。选择(“ytd视频渲染器”)(无效,列表为空。) .getElementsByClass(“ytd项目节渲染器”)(仅在ytd视频渲染器中出现的类) 。选择(“ytd视频渲染器.ytd项目节渲染器”) 。选择(“ytd视频渲染器[类*=ytd项目部分渲染器]”

我在使用Jsoup解析长标记名的HTML页面时遇到了一些问题。 在我的例子中,我试图从youtube搜索页面中提取
元素。不管我有多少种尝试。没有返回可靠的或非空的列表

到目前为止,我已经尝试了一些东西,每个都是针对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在这里可能确实工作得更好。