基于python的中国气象局气象数据采集,可以作为数据集使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文介绍了一个基于Python的中国气象局气象数据采集项目,使用requests、lxml等技术将天气数据爬取并存储至MySQL数据库,可用于数据集创建。

采集网站:

http://weather.cma.cn/web/weather/54161.html

使用技术:pymysql

requests

lxml

etree

实现:

通过爬取中国气象局网站上的天气数据,并将数据存储到MySQL数据库中。

首先,通过cun()函数创建了一个名为"天气数据"的表格,并定义了表格的各个列及其数据类型。

接下来,html_text()函数通过发送HTTP请求获取每个城市的天气页面内容。使用requests.get()方法发送GET请求,并指定了请求头部信息。

然后,在jiexi()函数中,使用lxml库对网页内容进行解析。通过XPath路径选取相应的数据,并保存到变量中。最后,使用pymysql库连接到MySQL数据库,并使用游标对象执行SQL语句,将数据插入到"天气数据"表格中。

在主函数main()中,定义了一个包含城市和对应URL的字典dic_。遍历字典中的每个键值对,分别调用html_text()函数获取网页内容,再调用jiexi()函数解析并存储数据。

最后,调用cun()函数创建数据库表格,并调用main()函数执行爬取和存储操作。

主要代码:

#读取每一页的代码
def html\_text(my\_list1):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
    }
    res = requests.get("http://weather.cma.cn"+my\_list1, headers=headers).content
    print(res)
    return res
#解析数据,采集数据
def jiexi(tx,city):
    db = pymysql.connect(host='localhost', user='root', password='root', port=3306, db='中国气象局')
    cur = db.cursor()
    soup = etree.HTML(tx)
    dw = soup.xpath('/html/body/div\[1\]/div\[2\]/div\[1\]/div\[1\]/div\[2\]/div')
    list0=\[\]
    for i in dw:
        list1=\[\]
        riqi = i.xpath('./div\[1\]/text()\[1\]')\[0\] + i.xpath('./div\[1\]/text()\[2\]')\[0\]
        tianqi = i.xpath('./div\[3\]/text()')\[0\]
        fengxiang = i.xpath('./div\[4\]/text()')\[0\]
        fengli = i.xpath('./div\[5\]/text()')\[0\]
        max\_1 = i.xpath('./div\[6\]/div/div\[1\]/text()')\[0\]
        min\_1 = i.xpath('./div\[6\]/div/div\[2\]/text()')\[0\]
        n\_tianqi = i.xpath('./div\[8\]/text()')\[0\]
        n\_fengxiang = i.xpath('./div\[9\]/text()')\[0\]
        n\_fengli = i.xpath('./div\[10\]/text()')\[0\]

采集结果:

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
34 1
|
3月前
|
数据采集 数据格式 Python
享一些可以提高数据采集准确性的 Python 代码
这段Python代码示例提供了几个实用功能以提升数据采集的准确性:数据源验证、去除重复值、数据范围检查和数据格式验证。通过这些工具,可以确保所采集的数据在合理范围内且格式正确,有效提高了数据的质量。示例展示了如何使用这些功能进行数据清理与验证。
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
|
27天前
|
数据可视化 数据挖掘 大数据
Python 数据分析入门:从零开始处理数据集
Python 数据分析入门:从零开始处理数据集
|
3月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
155 1
|
3月前
|
数据可视化 数据挖掘 索引
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
|
3月前
|
数据采集 数据可视化 Python
【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
|
3月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
|
3月前
|
数据采集 数据可视化 数据挖掘
【python 】python 年度人口结构数据分析与可视化(源码+数据集)【独一无二】
【python 】python 年度人口结构数据分析与可视化(源码+数据集)【独一无二】