新闻中心

Python爬虫怎样抓取表格数据_Python爬虫提取网页中表格数据的实用方法

2025-11-09
浏览次数:
返回列表
抓取网页表格数据需根据页面类型选择方法:静态页面可用requests+BeautifulSoup解析HTML,或pandas.read_html直接读取;动态内容则用Selenium模拟浏览器加载,再提取表格并清洗保存为CSV。

python爬虫怎样抓取表格数据_python爬虫提取网页中表格数据的实用方法

抓取网页中的表格数据是Python爬虫常见的任务之一。很多网站以HTML表格(table标签)形式展示结构化信息,比如股票行情、课程表、商品价格等。使用Python可以高效提取这些数据并保存为CSV或Excel格式,便于后续分析。

1. 使用BeautifulSoup解析HTML表格

BeautifulSoup是Python中常用的HTML解析库,适合提取页面中的tabletrtd等标签内容。

基本步骤如下:

  • 用requests获取网页源码
  • 用BeautifulSoup解析HTML
  • 查找所有table标签,选择目标表格
  • 遍历行(tr)和单元格(tdth)提取文本
示例代码:
import requests
from bs4 import BeautifulSoup
<p>url = '<a href="https://www.php.cn/link/f630930295f2102fb56edc9f88de45fb">https://www.php.cn/link/f630930295f2102fb56edc9f88de45fb</a>'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')</p><p>table = soup.find('table')  # 可根据class或id更精确选择
data = []
for row in table.find_all('tr'):
cols = row.find_all(['td', 'th'])
data.append([col.get_text(strip=True) for col in cols])</p><h1>data 现在是一个二维列表,可写入CSV</h1><p>

2. 使用pandas直接读取表格(适用于简单场景)

如果网页中的表格结构清晰,pandas的read_html()函数能自动识别并提取所有表格,非常方便。

易标AI 易标AI

告别低效手工,迎接AI标书新时代!3分钟智能生成,行业唯一具备查重功能,自动避雷废标项

易标AI 135 查看详情 易标AI
  • 无需手动解析HTML标签
  • 直接返回DataFrame列表
  • 适合静态页面且表格不多的情况
示例代码:
import pandas as pd
<p>url = '<a href="https://www.php.cn/link/85e9b5dce4f9484f6731b0d778f8cc2e">https://www.php.cn/link/85e9b5dce4f9484f6731b0d778f8cc2e</a>'
tables = pd.read_html(url)  # 返回一个包含所有表格的列表
df = tables[0]  # 取第一个表格
print(df.head())

3. 处理动态加载的表格(J*aScript渲染)

有些网页表格由J*aScript动态生成,requests无法获取完整HTML。这时需要使用Selenium模拟浏览器操作。

  • 启动浏览器驱动(如ChromeDriver)
  • 访问页面并等待表格加载完成
  • 再用BeautifulSoup或Selenium自身方法提取数据
示例代码片段:
from selenium import webdriver
from bs4 import BeautifulSoup
import time
<p>driver = webdriver.Chrome()
driver.get('<a href="https://www.php.cn/link/8edc69aa76b7aac408ba3c248aa8d7d4">https://www.php.cn/link/8edc69aa76b7aac408ba3c248aa8d7d4</a>')
time.sleep(3)  # 等待JS加载</p><p>soup = BeautifulSoup(driver.page_source, 'html.parser')
table = soup.find('table')</p><h1>后续提取逻辑同BeautifulSoup</h1><p>driver.quit()

4. 数据清洗与保存

提取后的表格数据常含有多余空格、换行或缺失值,建议进行简单清洗。

  • 去除空白字符:使用strip()
  • 处理合并单元格:注意rowspan/colspan逻辑
  • 保存为CSV:用csv模块或pandas的to_csv()
保存示例:
import csv
<p>with open('table_data.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)

基本上就这些。根据网页情况选择合适的方法,静态页面优先用requests+BeautifulSoup或pandas,动态内容上Selenium。关键在于准确定位表格结构,并稳定提取文本内容。

以上就是Python爬虫怎样抓取表格数据_Python爬虫提取网页中表格数据的实用方法的详细内容,更多请关注其它相关文章!


# 第一个  # 包年网站优化公司  # 宁波网站建设哪家好  # 广州定制网站建设地址  # 常州品牌营销推广报价  # 行业门户seo操作规范  # 推荐动漫关键词排名  # seo网站托管  # 黄浦区网站建设维护  # 南庄大良网站建设  # 邯郸网站建设团队推荐  # 适用于  # 不多  # 遍历  # 量计算  # python  # 是一个  # 运算符  # 单元格  # 保存为  # 加载  # a  # 浏览器  # js  # html  # java  # excel  # javascript  # python入门  # python爬虫 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  顺丰快件物流信息 官方网站查询入口  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践  WordPress插件开发:正确注册卸载钩子与避免常见陷阱  PySpark中从现有列右侧提取可变长度字符创建新列的教程  拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧  C#中解析不规范的HTML为XML 常见的坑与解决办法  J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析  c++如何使用TBB库进行任务并行_c++ Intel线程构建模块  qq游戏手机版下载安装_qq游戏移动端入口  在VS Code中配置和运行Dart程序的完整步骤  实现全屏滚动与导航点:专业教程  优化Django表单:提交验证失败后保留用户输入  Angular中父组件异步更新子组件复选框状态的实践指南  Centos/Linux 系统下安装 composer 的完整步骤  怎么在mac上运行html代码_mac运行html代码方法【指南】  poki网页游戏推荐_poki免费游戏平台入口  在J*a项目里如何构建对象之间的契约_接口约束的实际落地  微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  React Hooks最佳实践:动态组件状态管理的组件化方案  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  抖音极速版最新版本 抖音极速版官方下载地址  CSS布局中意外空白:解决padding-top导致的顶部间距问题  深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略  AO3官方在线访问地址 Archive of Our Own最新镜像合集  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接  AO3网页版最新入口合集 Archive of Our Own在线访问指南  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  Shopware订单对象中获取产品自定义字段的正确方法  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  Web Components中自定义开关组件状态同步的常见陷阱与解决方案  深入理解Google Cloud Datastore查询:祖先路径与数据一致性  C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用  steam官方入口大全 steam账号注册及操作指南  机器学习中对数变换预测结果的反向还原  如何在Promise链中优雅地中断后续then执行  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  高德地图怎么看全景照片_高德地图全景照片浏览教程  J*aScript中localStorage数据的获取、清洗与格式化教程  AO3官方可用镜像 Archive of Our Own网页版最新入口  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址 

搜索