为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用python / selenium通过css选择器查​​找元素

如何使用python / selenium通过css选择器查​​找元素

胡说叔叔 2021-12-16 14:53:54
我正在尝试获取位于以下位置的 youtube 频道的链接:<a id="author-text" class="yt-simple-endpoint style-scope ytd-comment- renderer" href="/channel/UCUSy-h1fPG1L6X7KOe70asA"> <span class="style- scope ytd-comment-renderer">Jörgen Nilsson</span></a>所以在上面的例子中,我想选择“/channel/UCUSy-h1fPG1L6X7KOe70asA”。到目前为止,我已经尝试了很多选择,但都没有奏效:driver = webdriver.Chrome('C:/Users/me/Chrome Web Driver/chromedriver.exe')api_url="https://www.youtube.com/watch?v=TQG7m1BFeRc"driver.get(api_url)time.sleep(2) div = driver.find_element_by_class_name("yt-simple-endpoint style-scope ytd-comment-renderer")但我收到以下错误: InvalidSelectorException: Message: invalid selector: Compound class names not allowed我还尝试了其他方法:div = driver.find_elements_by_xpath("yt-simple-endpoint style-scope ytd-comment-renderer")div = driver.find_element_by_class_name('yt-simple-endpoint style-scope ytd-comment-renderer')div=driver.find_element_by_css_selector('.yt-simple-endpoint style-scope ytd-comment-renderer').get_attribute('href')但没有运气..如果有人可以帮忙,将不胜感激。谢谢
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您的选择器无效:

  • driver.find_element_by_class_name("yt-simple-endpoint style-scope ytd-comment-renderer")

    您不能将多个类名传递给find_element_by_class_name方法。你可以试试driver.find_element_by_class_name("ytd-comment-renderer")

  • driver.find_elements_by_xpath("yt-simple-endpoint style-scope ytd-comment-renderer")

    这不是正确的 XPath 语法。你可能是说driver.find_elements_by_xpath("//*[@class='yt-simple-endpoint style-scope ytd-comment-renderer']")

  • driver.find_element_by_css_selector('.yt-simple-endpoint style-scope ytd-comment-renderer')

    每个类名都应该以点开头: driver.find_element_by_css_selector('.yt-simple-endpoint.style-scope.ytd-comment-renderer')

但恕我直言,通过ID以下方式识别的最佳方式:

driver.find_element_by_id("author-text")


查看完整回答
反对 回复 2021-12-16
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您可以在 python 中使用 BeautifulSoup 来获取具有特定类名的锚标记中的链接,就像soup.find_all('a', attrs={'class':'yt-simple-endpoint'})您可以在此处使用 css find_all阅读更多内容


查看完整回答
反对 回复 2021-12-16
  • 2 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号