Python - Selenium 和 XPATH 从表中提取所有行
Posted
技术标签:
【中文标题】Python - Selenium 和 XPATH 从表中提取所有行【英文标题】:Python - Selenium and XPATH to extract all rows from a table 【发布时间】:2015-08-21 16:11:49 【问题描述】:我正在使用 Selenium 和 XPATH 从表中提取所有行,但只能获取第一行。
这是我正在做的事情:
from selenium import webdriver
path_to_chromedriver = '/Users/me/Desktop/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = "http://www.psacard.com/smrpriceguide/SetDetail.aspx?SMRSetID=1055"
browser.get(url)
browser.implicitly_wait(10)
SMRtable = browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody')
for i in SMRtable.find_element_by_xpath('.//tr'):
print i.get_attribute('innerhtml')
browser.close()
当我转换为字符串并打印时,SMRtable
变量中包含所有行。当我尝试遍历它时,它会抛出 not iterable
错误。
我也尝试过使用browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody/tr')
,但这只会给我第一行。我尝试在/tr
之后添加[position()>0]
,但仍然只有第一行。
如何获取所有行?
【问题讨论】:
【参考方案1】:你需要find_elements_by_xpath()
(注意“s”):
for i in SMRtable.find_elements_by_xpath('.//tr'):
print i.get_attribute('innerHTML')
【讨论】:
我讨厌这种情况发生。谢谢。 什么是'innerHTML? CSS 还是 xpath?' 使用print(i.get_attribute('innerHTML')
我得到了 HTML 表格代码。如何将其呈现到 DataFrame 或 CSV?谢谢以上是关于Python - Selenium 和 XPATH 从表中提取所有行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用selenium和python创建具有相同xpath的元素列表?
Python Selenium 无法使用 Selenium 和 Python 在#shadow-root (open) 中通过 xpath 找到元素