首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何点击每个链接并提取其中的内容- Python Selenium

如何点击每个链接并提取其中的内容- Python Selenium
EN

Stack Overflow用户
提问于 2018-07-21 02:47:47
回答 1查看 1.8K关注 0票数 0

我想从id = "LinkNoticia“的所有链接中获取内容实际上我的代码加入了第一个链接并提取内容,但我无法访问其他链接。

我该怎么做呢?

这是我的代码(适用于1个链接)

代码语言:javascript
复制
from selenium import webdriver

driver= webdriver.Chrome("/selenium/webdriver/chromedriver")
driver.get('http://www.emol.com/noticias/economia/todas.aspx')

driver.find_element_by_id("LinkNoticia").click()

title = driver.find_element_by_id("cuDetalle_cuTitular_tituloNoticia")
print(title.text)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-21 04:30:32

ID的全部要点是对于页面上的每个元素都是唯一的。根据HTML specs的说法

id = name此属性为元素指定名称。此名称在文档中必须是唯一的。

一个冗长的讨论是here

由于ID应该是唯一的,所以大多数(全部?)Selenium的实现将只具有查找具有给定ID的元素(例如find_element_by_id)的功能。我从来没有见过通过ID查找多个元素的函数,所以你不能直接使用ID作为你的定位器,你需要使用一个现有的函数来定位多个元素,并使用ID作为一些属性来允许你选择一组元素。您的选择是:

代码语言:javascript
复制
find_elements_by_xpath
find_elements_by_css_selector

例如,您可以像这样更改搜索:

代码语言:javascript
复制
links = driver.find_elements_by_xpath("//a[@id='LinkNoticia']");

这将为您提供整个链接集,并且您需要遍历它们以检索实际的链接(href)。请注意,如果只单击每个链接,就会离开页面,links中的引用将不再有效。所以你可以这样做:

以下链接提供了hrefs

  1. Build列表:

链接中的链接:指向每个href的hrefs.append(link.get_attribute("href"))

  • Navigate以检查其标题: hrefs=[]

对于href中的href:标题(Href);driver.get= driver.find_element_by_id("cuDetalle_cuTitular_tituloNoticia") # etc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51448711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档