我正在尝试从任何视频链接中截取YouTube视图。我尝试使用selenium驱动程序捕获元素但由于某种原因我无法捕获它.Below是我使用的代码:
driver=webdriver.chrome()
driver.get("https://www.youtube.com/watch?v=F-eMt3SrfFU")
driver.find_element_by_id("count").text
driver.find_element_by_id("watch-view-count").text
我无法捕捉此链接上的元素。我在这里做错了吗? 这是一个youtube电影链接,我想在链接上获取视图
答案 0 :(得分:2)
get()元素无法立即获得后可能就是这种情况。您可以使用以下示例等等。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.chrome()
driver.get("https://www.youtube.com/watch?v=F-eMt3SrfFU")
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "count"))) # 10 seconds implicit wait
print element.text
答案 1 :(得分:1)
我不确定为什么id = count不起作用。有可能与yt-view-count-renderer标签有一些奇怪的交互。我测试了CSS选择器span.view-count
,它运行得很好。
顺便说一句,您可以使用$$()
在Chrome中的devtools中测试您的CSS选择器,例如$$("span.view-count")
。 $$()
等同于driver.find_elements_by_css_selector()
。
有关此命令和其他命令的更多详细信息,请使用devtools,请参阅this link。
答案 2 :(得分:0)
我建议您稍微详细一点,而不是使用code
定位节点,我们可以定位innerHTML,即amt
标记,如下所示:
id("count")