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

如何使用 Selenium 和 Python 提取元素的 href 属性

如何使用 Selenium 和 Python 提取元素的 href 属性

千巷猫影 2023-04-18 16:01:29
我想在www.tab.com.au的“Racing-Next to Go”部分的 HTML 中抓取 URL 。以下是 HTML 的摘录:<a ng-href="/racing/2020-07-31/MACKAY/MAC/R/8" href="/racing/2020-07-31/MACKAY/MAC/R/8"><i ng- 我只想抓取 HTML 的最后一点,它是一个链接,所以:/racing/2020-07-31/MACKAY/MAC/R/8我尝试使用 xpath 查找元素,但无法获取所需的 URL。我的代码:driver = webdriver.Firefox(executable_path=r"C:\Users\Harrison Pollock\Downloads\Python\geckodriver-v0.27.0-win64\geckodriver.exe")driver.get('https://www.tab.com.au/')elements = driver.find_elements_by_xpath('/html/body/ui-view/main/div[1]/ui-view/version[2]/div/section/section/section/race-list/ul/li[1]/a')for e in elements:    print(e.text)
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

可能您想使用get_attributeinsted of .text。文档在这里。


elements = driver.find_elements_by_xpath('/html/body/ui-view/main/div[1]/ui-view/version[2]/div/section/section/section/race-list/ul/li[1]/a')

for e in elements:

    print(e.get_attribute("href"))


查看完整回答
反对 回复 2023-04-18
?
凤凰求蛊

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

/racing/2020-07-31/MACKAY/MAC/R/8HTML 中的值是href属性的值而不是innerText.


解决方案

而不是使用您需要使用的文本get_attribute("href")属性,有效的代码行将是:


elements = driver.find_elements_by_xpath('/html/body/ui-view/main/div[1]/ui-view/version[2]/div/section/section/section/race-list/ul/li[1]/a')

for e in elements:

    print(e.get_attribute("href"))


查看完整回答
反对 回复 2023-04-18
?
慕斯709654

TA贡献1840条经验 获得超5个赞

是的,您可以根据需要使用getAttribute(attributeLocator)函数。

selenium.getAttribute(//xpath@href);

指定您需要知道其类别的元素的 Xpath。


查看完整回答
反对 回复 2023-04-18
  • 3 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信