如何使用Selenium阅读youtube评论
How to read youtube comments using Selenium?
我正在尝试使用以下代码阅读youtube视频评论:
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://www.youtube.com/watch?v=JcbBNpYkuW4");
WebElement element = driver.findElementByCssSelector("#watch-discussion");
System.out.println(element.getText()); // this prints: loading..
// scrolll down so that comments start to load
driver.executeScript("window.scrollBy(0,500)", "");
Thread.sleep(10000);
element = driver.findElementByCssSelector("#watch-discussion");
System.out.println(element.getText());
最后一条语句输出一个空字符串。为什么?
这有点棘手,因为所有的注释都写在一个单独的iframe标签内的手表讨论。你必须首先使用driver.switchTo().frame("put ID或Name here")打开iframe;但是iframe id是一个随机值。切换到该iframe后,您可以找到注释,所有注释都在一个div中,类名为"Ct",因此您可以使用XPATH获取这些注释。请看下面的工作代码
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://www.youtube.com/watch?v=JcbBNpYkuW4");
WebElement element = driver.findElementByCssSelector("#watch-discussion");
System.out.println(element.getText()); // this prints: loading..
// scrolll down so that comments start to load
driver.executeScript("window.scrollBy(0,500)", "");
Thread.sleep(20000);
List<WebElement> iframes = driver.findElements(By.xpath("//iframe"));
for(WebElement e : iframes) {
if(e.getAttribute("id") != null && e.getAttribute("id").startsWith("I0_")) {
// switch to iframe which contains comments
driver.switchTo().frame(e);
break;
}
}
// fetch all comments
List<WebElement> comments = driver.findElements(By.xpath("//div[@class='Ct']"));
for(WebElement e : comments) {
System.out.println(e.getText());
}
我建议您尝试这个API,它非常容易/可靠,而不是依赖于元素的x路径。此外,动态页面/内容也不能依赖Xpath。
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 添加文字和评论功能更新Div
- 包括用于facebook评论框的JavaScript SDK
- facebook”;添加评论“;popup获胜'不要消失
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- html5视频中的Youtube类型注释
- 使用javascript自动点击youtube评论页面中的菜单按钮
- 使用 YouTube API 获取包含 JSON Feed 的视频中的所有评论
- 回复评论 YouTube 风格
- Youtube API v3 无法回复或评价任何评论
- {还没有答案}从 YouTube JSON API 获取评论分数
- 附加的火狐在YouTube评论加载后自动调用JavaScript
- 使用JavaScript在YouTube视频上发表评论
- 如何通过youtube API提交youtube评论
- YouTube是如何进行“直播”的?视频评论
- 我如何嵌入一个youTube视频与它的评论,喜欢和意见在我的html页面
- 为什么不'Youtube评论引发了DOM突变
- YouTube API v3插入评论
- 如何使用Selenium阅读youtube评论
- 如何使用Youtube Api获取用户的喜欢、评论和观看历史