对于网页中表格数据的抓取,介绍一种被称之为抓取神器的工具pandas,调用其read_html函数,快速方便获取页面中的表格
下面我们举一个例子
这个网页的url是http://www.stats.gov.cn/xxgk/sjfb/zxfb2020/202204/t20220419_1829785.html
首先,把网页下载下来,
下面是已经封装好的下载器类型
# -*- coding:utf8-*-
import urllib.request as ur
class HtmlDownloader(object):
def download(self, url):
if url is None:
return None
response = ur.urlopen(url)
if response.getcode() != 200:
return None
return response.read()
下载指定网页,获取表格数据,写进Excel文件
from html_downloader import HtmlDownloader
import pandas as pd
# 下载指定网页
hd = HtmlDownloader()
html = hd.download(url='http://www.stats.gov.cn/xxgk/sjfb/zxfb2020/202204/t20220419_1829785.html')
# print(html)
# print(type(html))
# 读取网页的表格数据--抓取神器
df = pd.read_html(html)
# print(df)
# 新建文件存放表格数据
writer = pd.ExcelWriter("网页的表格1.xlsx")
# 一页有多个表格,遍历
cnt=0
for df1 in df:
cnt=cnt+1
# 写进文件
df1.to_excel(writer, sheet_name='表'+str(cnt))
# 写完关闭文件
writer.close()
看看效果
一个网页三张表写在同一个文件中
哇,是不是很神奇,回顾一下本文亮点——抓取神器
# 读取网页的表格数据--抓取神器
df = pd.read_html(html)
注意,如果一个网页只有一张表,那返回的是pandas数据框,如果有3张表,那么返回的是一个列表
如果你对这个还不是很懂。可以先去小编的Python交流.裙 :爸六七吧零三四三吧(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,多跟里面的人交流,进步更快哦!