当前位置: 首页 > 知识库问答 >
问题:

在Python中使用Selenium提取特定类的链接

白赞
2023-03-14

我正在尝试从无限卷轴网站中提取链接

这是我向下滚动页面的代码

driver = webdriver.Chrome('C:\\Program Files     (x86)\\Google\\Chrome\\chromedriver.exe')
driver.get('http://seekingalpha.com/market-news/top-news')
for i in range(0,2):
    driver.implicitly_wait(15)
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(20)

我的目标是从这个页面中提取特定的链接。使用class=“market\u current\u title”和HTML,如下所示:

<a class="market_current_title" href="/news/3223955-dow-wraps-best-week-since-2011-s-and-p-strongest-week-since-2014" sasource="titles_mc_top_news" target="_self">Dow wraps up best week since 2011; S&amp;P in strongest week since 2014</a>

当我使用

URL = driver.find_elements_by_class_name('market_current_title')

我最终发现了“陈旧的元素引用:元素未附加到页面文档”的错误。然后我尝试了

 URL = driver.find_elements_by_xpath("//div[@id='a']//a[@class='market_current_title']")

但它说没有这样的联系!!!你对解决这个问题有什么想法吗?

共有1个答案

阎安邦
2023-03-14

您可能正在尝试与已经更改的元素(可能是滚动上方和屏幕外的元素)进行交互。尝试以下答案以获得一些关于如何克服此问题的好选项。

下面是一个片段:

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

# return True if element is visible within 2 seconds, otherwise False
def is_visible(self, locator, timeout=2):
try:
    ui.WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.CSS_SELECTOR, locator)))
    return True
except TimeoutException:
    return False
 类似资料:
  • 有没有办法获取某个特定类下的所有链接? 问题是,我正在写一个测试,要求我点击一个随机的,但是如果一个用户通过,它将获取页面上的所有链接。更确切地说,考虑这个网站,现在我想随机选择从<代码> PRT> <代码>,代码>暑期< /代码>代码>销售< /代码>,<代码>附件<代码>,<代码> BT草坪'16/代码>,<代码>销售> /代码>,代码>查找书> /代码>或点击“代码>夏令时< /COD>”后

  • 问题内容: 我正在用Python练习Selenium,我想使用Selenium获取网页上的所有链接。 例如,我想要http://psychoticelites.com/上所有标签的属性中的所有链接。 我写了一个脚本,它正在工作。但是,它给了我对象地址。我尝试使用标签来获取值,但是,它不起作用。 我当前的脚本: 问题答案: 好吧,您只需要遍历列表即可: 返回元素列表(注意“ elements”的拼写

  • 问题内容: 我有以下HTML页面。我想获取特定div中的所有链接。这是我的HTML代码: 我想获取div 中存在的所有链接。所以我想要的那些链接是 这是我尝试过的Python代码 如何在Python上使用Selenium获得这些链接? 问题答案: 按照您共享的HTML来获取div 上所有链接的列表,您可以使用以下代码块: 注意 :由于您需要从 div 标记中收集所有 href 属性,因此您无需使用

  • 我要提取的数据来自这个网站https://www.adobe.com/support/security/advisories/apsa11-04.html。我只想提取 发布日期:2011年12月6日最后更新:2012年1月10日漏洞标识符:APSA11-04 CVE编号:CVE-2011-2462 代码: 输出: 我不想要这些信息。我该如何过滤呢? 平台:全部*注意:Adobe Reader fo

  • 问题内容: 我正在将Selenium与Python API和Firefox结合使用来执行一些自动操作,这是我的问题: 单击原始页面上的链接,比方说 a.com 我被重定向到 _b.com/some/path?arg=value_ 并立即将我再次重定向到最终地址 c.com 那么有没有办法使用Selenium Python API 获得中间重定向URL _b.com/some/path?arg=va

  • 本文向大家介绍python实现提取COCO,VOC数据集中特定的类,包括了python实现提取COCO,VOC数据集中特定的类的使用技巧和注意事项,需要的朋友参考一下 1.python提取COCO数据集中特定的类 安装pycocotools github地址:https://github.com/philferriere/cocoapi pip install git+https://github