【Python】 利用Selenium获取网页表格的方法(find_element的方法)

[复制链接]
发表于 2025-12-2 09:37:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
偶然间 ,我们在利用selenium获取网页信息的时间,假如想要获取表格,用常用的pandas 的read_html,会遇到无法绕开登录等题目,无法进入下一个页面获取表格。
以是这里分享利用 Selenium的 find_element的方法获取表格!
在Python中,利用Selenium打印find_element下的table可以通过几种方法实现。
这里,我们将利用print函数联合元素的属性来打印表格的内容。以下是详细的步调和代码示例:
比方表格的格式:

详细的方法:
1. 导入须要的库

起首,确保你已经安装了Selenium库,而且已经下载了相应的WebDriver。
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
复制代码
2. 创建WebDriver实例

创建一个WebDriver实例,这里以Chrome为例。
  1. driver = webdriver.Chrome()
复制代码
3. 打开目的网页

利用get方法打开包罗表格的网页。
  1. driver.get("http://example.com/some_page_with_tables.html")
复制代码
4. 定位表格元素

利用find_element方法定位到表格元素。
  1. table = driver.find_element(By.TAG_NAME, 'table')
复制代码
5. 打印表格内容

方法1:利用get_attribute('outerHTML')

这个方法可以直接获取整个表格的HTML代码,并打印出来。
  1. print(table.get_attribute('outerHTML'))
复制代码
方法2:遍历表格行和单元格

假如你想要更详细地处置处罚表格数据,可以遍历表格的每一行和单元格,然后打印每个单元格的内容。
  1. rows = table.find_elements(By.TAG_NAME, 'tr')
  2. for row in rows:
  3.     cells = row.find_elements(By.TAG_NAME, 'td')
  4.     cell_texts = [cell.text for cell in cells]
  5.     print(cell_texts)
复制代码
这个方法会打印出每一行的单元格文本,以列表的情势体现。
6. 关闭欣赏器

完成利用后,不要忘记关闭欣赏器。
  1. driver.quit()
复制代码
完备代码示例
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. # 创建WebDriver实例driver = webdriver.Chrome()
  4. # 打开目的网页driver.get("http://example.com/some_page_with_tables.html")
  5. # 定位表格元素table = driver.find_element(By.TAG_NAME, 'table')
  6. # 方法1:打印整个表格的HTMLprint(table.get_attribute('outerHTML'))
  7. # 方法2:遍历并打印表格的每一行和单元格内容rows = table.find_elements(By.TAG_NAME, 'tr')
  8. for row in rows:
  9.     cells = row.find_elements(By.TAG_NAME, 'td')
  10.     cell_texts = [cell.text for cell in cells]
  11.     print(cell_texts)
  12. # 关闭欣赏器driver.quit()
复制代码
这种方法可以机动地顺应差异结构的网页表格,但须要注意页面的加载时间和大概的动态内容加载题目。
在现实应用中,大概须要联合显式期待(Explicit Wait)来确保元素在利用前已经加载完成哦~

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表