【问题标题】:scraping not working - InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified抓取不起作用 - InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器
【发布时间】:2021-07-31 01:10:31
【问题描述】:

我正在尝试抓取雅虎财经网页(评论部分)。我想单击一个按钮,其类如下图所示:

我想选择带有以下代码的按钮,但我得到一个InvalidSelectorException。我不明白为什么。

请注意,在我的代码中,我已将空格替换为 .,因为这是我通常所做的,但我也尝试过不替换空格,但在这两种情况下都无法正常工作。

link = 'https://finance.yahoo.com/quote/AMD/community?p=AMD'
path = r"""chromedriver.exe"""
driver = webdriver.Chrome(executable_path=path)
driver.get(link)
driver.find_element_by_class_name('sort-filter-button.O(n):h.O(n):a.Fw(b).M(0).P(0).Ff(i).C(#000).Fz(16px)')

【问题讨论】:

  • @prophet 嗨,如果你不介意回答这个问题:p
  • @YaDavMaNish 任何人都可以回答,只是我知道这个人回答,所以如果没有其他人,我认为提及这个人是个好主意
  • 你能检查我的答案吗希望它对你有用
  • 这是一个硒错误。只是不要使用 by_class_name。

标签: python selenium selenium-webdriver web-scraping selenium-chromedriver


【解决方案1】:

您可以检查以下内容

#This page is taking more time to load

sleep(15)
element = driver.find_element_by_xpath("//button[@aria-label='Sort Reactions']")

element.click()

更新

element = driver.find_element_by_xpath("//button[contains(@class,'sort-filter-button')]")

element.click()

【讨论】:

  • 成功了,谢谢!你能解释一下它是如何工作的以及为什么我的解决方案不起作用?放心,我会接受你一次的回答,一切都解决了
  • 好吧,我不担心repu,它只是在学习,我认为这是因为这个类名sort-filter-button O(n):h O(n):a Fw(b) M(0) P(0) Ff(i) C(#000) Fz(16px)():#,你可以在这里查看w3c.github.io/webdriver/#find-element跨度>
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
相关资源
最近更新 更多