郑州哪个网站建设最好,免费做网站软件下载,wordpress主题更换备份,安徽 网站信息内容建设利用Pandas进行高效网络数据获取
背景#xff1a;
最近看到一篇关于使用Pandas模块进行爬虫的文章#xff0c;觉得很有趣#xff0c;这里为大家详细说明。
基础铺垫#xff1a;
pd.read_html pandas 库中的一个函数#xff0c;用于从 HTML 页面中读取表格数据并…利用Pandas进行高效网络数据获取
背景
最近看到一篇关于使用Pandas模块进行爬虫的文章觉得很有趣这里为大家详细说明。
基础铺垫
pd.read_html pandas 库中的一个函数用于从 HTML 页面中读取表格数据并返回一个包含 DataFrame 对象的列表。那么说明是表格数据呢就是table标签的如下图
我们可以使用XPath快速判断当前页面是否具有使用Pandas进行爬虫的前提条件。 pd.read_html(io, match‘.’, flavorNone, headerNone, index_colNone, skiprowsNone, attrsNone, parse_datesFalse, thousands‘,’, encodingNone, decimal‘.’, convertersNone, na_valuesNone, keep_default_naTrue, displayed_onlyTrue)
参数说明
io: 接受的输入数据可以是一个 HTML 字符串、一个 URL、一个文件路径或一个文件对象。match (可选): 一个正则表达式用于匹配要提取的表格的 HTML 属性。flavor (可选): 解析器的名称例如 html5lib、lxml、html.parser 等。其他参数例如 header、index_col、skiprows 等参数用于控制读取表格数据的方式和格式。
案例实战 pd.read_html 函数会尝试从输入数据中提取所有的表格并返回一个包含 DataFrame 对象的列表就是一个列表里存在多个dataframe类型每个 DataFrame 对象对应一个表格。
import pandas as pd# 从 HTML 页面中读取表格数据
url https://vip.stock.finance.sina.com.cn/q/go.php/vFinanceAnalyze/kind/profit/index.phtml?p1
tables pd.read_html(url)print(tables,type(tables),len(tables))
# 选择第一个表格的 DataFrame 对象
df tables[0]
# 打印 DataFrame
print(---------------------------------------)
print(df,type(df)) 那么如果爬取多页呢 写个for循环然后使用concat拼接起来不会拼接的看一下我不久前写的博客。
import pandas as pddata_list []
for i in range(1, 6):url fhttps://vip.stock.finance.sina.com.cn/q/go.php/vFinanceAnalyze/kind/profit/index.phtml?p{i}data pd.read_html(url)[0] # 这里注意提取 返回的是一个列表data_list.append(data) # 每一个data都是一个dataframe类型print(个数为,len(data_list))
# 合并数据
df pd.concat(data_list,ignore_indexTrue)
print(df.head())
# 保存到本地
df.to_csv(profit.csv,indexFalse)看一下结果 细节问题
这里还要注意一个问题有的时候还要设置一下编码可能爬下来的是乱码如下 设置一下编码方式即可。
df pd.read_html(url,encodingutf-8)[0]
print(df.head())如果大家想深层了解为什么有的时候需要设置有的时候不需要设置你要需要看这个响应回来的编码格式。 温馨提示
本文提供的内容仅供学习和研究目的请在合法和道德的框架内使用所获取的知识和技巧。在进行网络爬虫活动时请遵守相关法律法规并尊重网站的使用条款和隐私政策。确保在进行任何爬取操作之前获得合适的授权并确保不会给目标网站或他人造成不必要的干扰或损害。