gpt4 book ai didi

java - 如何使用 Selenium 阅读 YouTube 评论?

转载 作者:行者123 更新时间:2023-12-02 06:03:25 24 4
gpt4 key购买 nike

我正在尝试使用以下代码读取 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 or 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());
}

关于java - 如何使用 Selenium 阅读 YouTube 评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22479598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com