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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 本文介绍了一个基于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\]

采集结果:

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
8月前
|
数据采集 Web App开发 数据可视化
Python爬虫分析B站番剧播放量趋势:从数据采集到可视化分析
Python爬虫分析B站番剧播放量趋势:从数据采集到可视化分析b
|
8月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
940 0
|
5月前
|
数据采集 自然语言处理 数据可视化
Python爬取B站视频评论区情感分析:从数据采集到价值挖掘
B站作为年轻人聚集地,评论蕴含丰富情感与趋势。本文详解如何用Python爬取评论,结合SnowNLP与jieba进行中文情感分析,并通过可视化挖掘用户情绪、消费意愿与内容反馈,助力精准运营与决策。
827 0
|
数据采集 存储 数据挖掘
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
本文介绍了一个基于Python的书旗网小说网站数据采集与分析系统,通过自动化爬虫收集小说数据,利用Pandas进行数据处理,并通过Matplotlib和Seaborn等库进行数据可视化,旨在揭示用户喜好和市场趋势,为图书出版行业提供决策支持。
1490 6
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
374 1
|
数据采集 数据格式 Python
享一些可以提高数据采集准确性的 Python 代码
这段Python代码示例提供了几个实用功能以提升数据采集的准确性:数据源验证、去除重复值、数据范围检查和数据格式验证。通过这些工具,可以确保所采集的数据在合理范围内且格式正确,有效提高了数据的质量。示例展示了如何使用这些功能进行数据清理与验证。
|
11月前
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
1913 3
|
数据采集 存储 自然语言处理
【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现
本文介绍了百度贴吧数据采集与文本分析的设计与实现,包括自动化采集帖子数据、进行情感分析和主题分析,以及使用可视化技术展示分析结果。
965 111
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
1158 1

推荐镜像

更多