【问题标题】:Clicking on LI link using Selenium Webdriver (Python)使用 Selenium Webdriver (Python) 单击 LI 链接
【发布时间】:2020-11-12 15:03:36
【问题描述】:

这里是 Selenium 的新手。我在这里先向您的帮助表示感谢! (已解决

我已经成功地使用下面的代码点击了链接,但很难点击 LI 下的链接。我参考了其他几个 stackoverflow 页面,但还没有找到解决方案。

在这种情况下,我尝试单击页码“2”,然后为所有后续页面运行我的刮刀(我为第 1 页工作)。请注意,单击第 2 页会导致表格发生变化(也就是一组新的股票代码和信息被拉起),但网站链接本身不会改变。

网站链接:https://www.gurufocus.com/insider/summary

这是我要点击的内容: The number 2, highlighted in yellow

我在检查元素时看到的内容:inspect

我可以通过下面的代码在同一页面上单击不同的链接(标题为“聚合内幕交易活动可以预测市场吗?”,但是当我输入“2”时,我收到一条错误消息“NoSuchElementException:消息:没有这样的元素:无法找到元素:{“方法”:“链接文本”,“选择器”:“2”}“

总结,我想“点击”第 2 页,调出更多股票信息,然后通过它运行我的爬虫(然后对其余页面使用 for 循环)。创建 for 循环来抓取多个页面不会有任何麻烦,但我似乎无法让 Selenium 为我点击下一页。

已解决的代码 - 感谢大家的所有帮助!

   from selenium import webdriver
    
   from selenium.webdriver.common.by import By
   from selenium.webdriver.support.ui import WebDriverWait
   from selenium.webdriver.support import expected_conditions as EC

   import time

   PATH = "C:\\Users\\MYUSERNAME\\Webdrivers\\chromedriver.exe"
   driver = webdriver.Chrome(PATH)

   driver.get("https://www.gurufocus.com/insider/summary")

   driver.find_element_by_xpath("//ul[@class='el-pager']/li[text()='2']").click

    try:
       element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//ul[@class='el-pager']/li[text()='2']"))
)
       element.click() 
    except:
        driver.quit() 

  

【问题讨论】:

  • 欢迎来到 Stack Overflow。请与我们分享您迄今为止尝试单击链接“2”的代码,以及它产生的结果/错误。也请查看stackoverflow.com/help/minimal-reproducible-example
  • @piterbarg 谢谢你的建议,有帮助吗?
  • 你想从这个站点中提取什么?
  • @Vin 如果您从该链接单击页面“2”,它将刷新有关股票代码信息的表格。我已经有一个刮刀来刮第一页,所以我的目标是能够“点击”下一页(在本例中为两个),并用新的代码刷新表格,刮掉它,然后进入下一页等
  • @Vin 创建用于抓取后续页面的 for 循环不会有任何问题 - 我只需要帮助 Selenium 单击第 2 页链接(以及所有后续页面)。希望这是有道理的!

标签: python selenium web-scraping


【解决方案1】:

您的问题是因为页面“2”不是“链接文本”。如果您注意到“聚合内幕交易活动能否预测市场?”是链接文本,因为它的标签是“a”。添加此内容以单击您的页面 2 driver.find_element_by_xpath("//ul[@class='el-pager']/li[text()='2']").click

【讨论】:

  • hmmm 我试过了,我没有收到错误代码,这很好!但是,当我查看页面本身时,它仍然在第 1 页。如果要物理单击第 2 页,底部带有代码的表格会发生变化。
  • 点击后是否添加了等待?点击后你的下一个脚本是什么?
  • 啊,点击后等待出现错误,现在可以了!万分感谢!我会用正确的代码为其他人编辑我的问题,以防他们将来需要。
猜你喜欢
  • 2013-10-04
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多