首页 > 解决方案 > 如何从 Python 中的 Selenium Web 元素中提取内部元素?

问题描述

我正在尝试使用 Selenium 从此页面中提取股票代码并将它们插入到列表中: https ://www.barchart.com/stocks/highs-lows/highs?timeFrame=1y

我的代码:

StockList = []

driver = webdriver.Chrome()
url = "https://www.barchart.com/stocks/highs-lows/highs?timeFrame=1y"
driver.get(url)

stock_list = driver.find_elements_by_tag_name("tr")
for stock in stock_list:
    stock.find_element_by_name("data-current-symbol=")
    print(stock)

我收到一个NoSuchElementException.

当我检查页面时,每个页面tr都有以下内容:"data-current-symbol="ACY

如何提取股票代码?

标签: pythonseleniumweb-scraping

解决方案


使用这个选择器:

tr[data-current-symbol]

并利用.get_attribute方法:

StockList = []

driver = webdriver.Chrome()
url = "https://www.barchart.com/stocks/highs-lows/highs?timeFrame=1y"
driver.get(url)

stock_list = driver.find_elements_by_css_selector("tr[data-current-symbol]")

for stock in stock_list:
    symbol = stock.get_attribute('data-current-symbol')
    print(symbol)
    StockList.append(symbol)

推荐阅读