当前位置: 首页 > 知识库问答 >
问题:

选择所有YouTube视频

冀鸿才
2023-03-14

我正在尝试在YouTube上的视频管理器中获取所有已上传视频的观看网址。如何选择页面上的所有视频?我认为类名vm-视频-标题-内容yt-uix-会话链接存在于每个视频的标记中,但是如何使用它来检索所有href属性?我正在为选择器而苦苦挣扎。

这是我基本上正在处理的html片段:

<a href="/watch?v=THE_WATCH_ID" class="vm-video-title-content yt-uix-sessionlink" data-sessionlink="THE_SESSION_LINK_ID_OR_SOMETHING">THE_VIDEO_TITLE</a>

在< code>Selenium中,我尝试了

By videoSelector = By.className("vm-video-title-content.yt-uix-sessionlink");
List<WebElement> webElements = webDriver.findElements(videoSelector);
System.out.println(webElements.size());

但它打印的大小为0。

注意,我在类名中放了一个点,因为不支持复合类名。

我的方法是否有希望,或者是否有更好的方法?

共有1个答案

漆雕和昶
2023-03-14

我认为你误解了“类”,以及它们在HTML中是如何工作的。

您的 HTML 示例指定两个类:虚拟机视频标题内容yt-uix 会话链接。请注意,这是一个以空格分隔的列表!

您的Java代码要求一个完全不同的类:vm-video-title-content.yt-uix-sesionlink。请注意,这是通过精确的字符串比较完成的!

如果您尝试以下操作:

By videoSelector = By.className("vm-video-title-content");

你应该离你想要的更近一点。

 类似资料:
  • 本文向大家介绍MySQL 选择所有列(*),包括了MySQL 选择所有列(*)的使用技巧和注意事项,需要的朋友参考一下 示例 询问 结果 您可以通过执行以下操作从一个连接的一个表中选择所有列: 最佳实践*除非正在调试或获取row(s)关联数组,否则不要使用,否则架构更改(ADD / DROP /重新排列列)可能会导致讨厌的应用程序错误。另外,如果提供结果集中所需的列列表,MySQL的查询计划程序通

  • 我正在使用youtube v3 API检索播放列表的视频,并通过此链接获得50个项目,没有任何问题:- https://www.googleapis.com/youtube/v3/playlistItems?part=snippet 但是视频数是100,我只有50个。我如何获得接下来的50个项目?我尝试了start index,但它不适用于v3 API。感谢任何帮助。

  • 问题内容: 我想使用JSoup从文档中选择所有注释。我想做这样的事情: 我已经试过了: } 但是在日食“不兼容的条件操作数类型元素和注释”中发生以下错误。 干杯, 问题答案: 由于您需要应用到节点对象,而不是元素,因此:

  • 问题内容: 我想获取特定频道的所有视频网址。我认为带python或java的json是一个不错的选择。我可以使用以下代码获取最新的视频,但是如何获得所有视频链接(> 500)? 问题答案: 将最大结果从1增加到您想要的任何数目,但是请注意,他们不建议一次通话就抓住太多,并且将您限制为50(https://developers.google.com/youtube/2.0/developers_gu

  • 我想获取具有Id的单个频道的所有视频。我只得到频道信息的问题。这是我正在使用的链接: https://g data . YouTube . com/feeds/API/users/UCD CIB _ pnqpr 0m _ kkdg 4d z5 a?v=2

  • 我使用YouTube数据API从一个频道获取视频信息。API响应不包括上传到相应频道的所有视频。 这是频道(现在有6个视频):https://www.youtube.com/channel/UCdSjDEx46aNP0oKPN_J6hOA/videos 视频列表(现在):https://i.ibb.co/K91bJxS/image.png 这是我的API调用:https://www.googlea