【python】获取历史天气数据

记录一下我的python学习之路
今天没有使用爬虫获取数据,而是根据目标网页的数据特点,选用pd.read_html()读取网页表格类数据。

前期准备

环境:python环境3.多版本,需要用到的库主要有openpyxl,。pandas(用于保存数据)。
目标网站:2345天气王中的历史天气
在这里插入图片描述

在写完这篇博文后,我还去网上搜索了相关爬取方式,发现还有许多相似或者更加简介的方式,这里贴出来供大家学习。路漫漫其修远兮~

参考博文【Python奇淫技巧】用pandas的read_html函数仅一行代码实现网页爬虫

注意:在对各大网站进行浏览时,要避免短时间内多次对对方服务器多次请求。这也是尊重对方所提供的数据,不能恩将仇报。

完整代码

代码包括读取网页信息,还将数据直接存储到excel表格中。

# import lxml
from openpyxl import load_workbook
import pandas as pd
url = "https://tianqi.2345.com/wea_history/58453.htm"#目标网址
tables = pd.read_html(url)[0]
#准备存储
workbook = load_workbook(filename='数据.xlsx')#打开表格
sheet = workbook.create_sheet('天气')#创建表格
sheet.append(list(tables))#表格的标头
i=0
for line in range(0,len(tables.iloc[:,1])):#分别读取每一行
    print(list(tables.iloc[i, :]))#打印查看
    txt = list(tables.iloc[i, :])
    sheet.append(list(txt))
    i=i+1
workbook.save(filename="数据.xlsx")#保存表格

代码浅析

这里需要说明的是,pd.read_html(url)只能针对网页上有’<table’>标签的数据。
在最上面的图片中,我们可以看到页面上是有一个表格数据的,直接使用pd.read_html(url)就可以读取网页上的表格数据。

资料显示:
Pandas可以直接用DataFrame生成HTML表格,同样可以读取HTML文件。
read_html()函数解析HTML页面,寻找HTML表格。
如果找到,就将其转换为可以直接用于数据分析的DataFrame对象。

这功能可以说是很强大了呀。

欢迎相互学习

猜你喜欢

转载自blog.csdn.net/CBCY_csdn/article/details/125735198
今日推荐