猿问

在python selenium中从HTML表格中提取链接文本

我是硒的新手。我想从网站的以下 HTML 代码中提取 HTML 表中的链接文本。

对于上面的代码片段,我在 selenium 中编写了以下代码:


from selenium import webdriver

from selenium.webdriver.common.by import By


option = webdriver.ChromeOptions()

option.add_argument("--incognito")

option.add_argument("--start-maximized")


chrome_path = r"C:\Users\singh\Downloads\chromedriver_win32\chromedriver.exe"

browser = webdriver.Chrome(chrome_path, options=option)

browser.get("https://timesofindia.indiatimes.com/archive/year-2010,month-1.cms")

browser.implicitly_wait(10)


num = []

numbers = browser.find_elements(By.XPATH, "//table[@class = 'calender']/tbody/tr/td/a[@href]")


for n in numbers:

    number = n.text

    num.append(number)

预期输出:


num = ['S', 'M', 'T', 'W', 'T', 'F', 'S', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']

该程序将num和numbers列表作为空列表返回。


我知道在代码中输入的 XPath 中有些地方不正确。但我无法弄清楚错误是什么。


操作系统:Windows 10 x64

Python IDE:Anaconda Spyder

Python 版本:3.6


蛊毒传说
浏览 267回答 1
1回答

慕标5832272

有两个问题1.calender是id,不是class。2.为了得到href你需要使用的get_attribute,而不是文本numbers = browser.find_elements(By.XPATH, '//table[@id="calender"]//a')for n in numbers:    number = n.get_attribute('href')    num.append(number)
随时随地看视频慕课网APP

相关分类

Python
我要回答