Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Python爬虫怎样抓取表格数据_Python爬虫提取网页中表格数据的实用方法_创想鸟

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

抓取网页表格数据需根据页面类型选择方法:静态页面可用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 requestsfrom bs4 import BeautifulSoup

url = 'https://www.php.cn/link/f630930295f2102fb56edc9f88de45fb'response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')

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])

data 现在是一个二维列表,可写入CSV

立即学习“Python免费学习笔记(深入)”;

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

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

无需手动解析HTML标签直接返回DataFrame列表适合静态页面且表格不多的情况示例代码:

import pandas as pd

url = 'https://www.php.cn/link/85e9b5dce4f9484f6731b0d778f8cc2e'tables = pd.read_html(url) # 返回一个包含所有表格的列表df = tables[0] # 取第一个表格print(df.head())

3. 处理动态加载的表格(JavaScript渲染)

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

启动浏览器驱动(如ChromeDriver)访问页面并等待表格加载完成再用BeautifulSoup或Selenium自身方法提取数据示例代码片段:

from selenium import webdriverfrom bs4 import BeautifulSoupimport time

driver = webdriver.Chrome()driver.get('https://www.php.cn/link/8edc69aa76b7aac408ba3c248aa8d7d4')time.sleep(3) # 等待JS加载

soup = BeautifulSoup(driver.page_source, 'html.parser')table = soup.find('table')

后续提取逻辑同BeautifulSoup

driver.quit()

4. 数据清洗与保存

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

去除空白字符:使用strip()处理合并单元格:注意rowspan/colspan逻辑保存为CSV:用csv模块或pandas的to_csv()保存示例:

import csv

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爬虫提取网页中表格数据的实用方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1378653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Django Simple JWT刷新令牌轮换与页面刷新冲突的解决方案
上一篇 2025年12月14日 19:58:48
Python爬取Yahoo Finance财报数据:API调用实践指南
下一篇 2025年12月14日 19:59:02

相关推荐

发表回复

登录后才能评论
关注微信