【爬虫+数据分析实战】Python采集北上广深天气数据,制作可视化动图—“天冷了就该钻被窝早睡觉啦~”

402 阅读4分钟

前言

哈喽哈喽!我是栗子,这几天冷吗?温差大吗?风大吗?瑟瑟发抖中。

🚀 **文章源码免费获取 : 为了感谢每一个关注我的小可爱💓

每篇文章的项目源码都是无偿分享滴💓👇👇

点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可!

别急!下周起,小伙伴们直接冻傻,不信你看💨💨反正就是这个点基本上全国都降!——

**温!——****了!**别问肿么得出这样子的结论的?冬天来的太快,就像龙卷风。。。

这几天冷是真的冷 ,干燥也是真的干燥,嘴唇都快干秃皮了!受冷空气的影响。各地气温有明

显下降,昼夜温差较大。看看这像不像最近的你?

好了废话太多了。我们开始今天的正题吧:Python 爬取天气数据 并做数据可视化,我们来采

集北上广深历史天气采集,来看看历年的天气数据吧! 可视化分析之后可以得出多种结论的哦

~不信你看。

正文

一、前期准备

学到的知识点有:

动态数据抓包
requests发送请求
结构化+非结构化数据解析

运行环境:

[开发环境]:    python 3.6               
运行代码       pycharm 2021         
辅助敲代码     requests                 
第三方模块     pip install 模块名 镜像源安装   pip install -i pypi.douban.com/simple/ +模块名
+python 安装包  安装教程视频
+pycharm 社区版 专业版 及 激活码免费找我拿即可

二、代码实现

爬虫
    批量采集数据(文本 视频 音频 图片)
原理:
    模拟成 浏览器(客户端) 向 服务器 发送请求(跟服务器 打交道)
爬虫:
    分析数据来源 找到数据
    https://tianqi.2345.com/Pc/GetHistory?areaInfo%5BareaId%5D=54511&areaInfo%5BareaType%5D=2&date%5Byear%5D=2022&date%5Bmonth%5D=4

实现代码: 1. 发送请求 2. 获取数据 3. 解析数据 4. 保存数据

1)爬虫代码:

import requests     # 第三方模块(额外安装) 发送请求
import parsel       # 解析数据 第三方模块
import csv          # 内置模块

with open('北上广深历史天气.csv', mode='a', newline='', encoding='utf-8') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(['日期', '最高温度', '最低温度', '天气', '风向', '城市'])
city_list = [54511, 58362, 59287, 59493]
for city in city_list:
    for year in range(2013, 2022):
        for month in range(1, 13):
            url = f'https://tianqi.2345.com/Pc/GetHistory?areaInfo%5BareaId%5D={city}&areaInfo%5BareaType%5D=2&date%5Byear%5D={year}&date%5Bmonth%5D={month}'
            # 1. 发送请求
            response = requests.get(url=url)
            # <Response [200]>: 请求成功
            # 2. 获取数据
            json_data = response.json()     # 字典  text 文本 字符串
            # 3. 解析数据 (提取数据)
            html_data = json_data['data']
            # .history-table tr
            selector = parsel.Selector(html_data)
            trs = selector.css('.history-table tr')[1:]
            for tr in trs:
                # ::text: 获取标签文本内容
                # .getall(): 获取所有的td标签
                td = tr.css('td::text').getall()
                if city == 54511:
                    td.append('北京')
                elif city == 58362:
                    td.append('上海')
                elif city == 59287:
                    td.append('广州')
                elif city == 59493:
                    td.append('深圳')
                print(td)
                with open('北上广深历史天气.csv', mode='a', newline='', encoding='utf-8') as f:
                    csv_writer = csv.writer(f)
                    csv_writer.writerow(td)

2)效果展示:

​3)北上广深天气数据采集表格存储

好啦!可视化的就等让大家自己实战了哈,当然也可以直接找我拿源码的 哈哈哈!下面这个是可视化的动态图哦~

总结

**各位北上广深的朋友们大家好 !!!****要问这周的天气,**请看天气预报 !!!

要问这一周穿什么,冬天噜 !!!~~~来来来~~~就看这篇文章就ok了哈!

学完这篇,一通百通,可以随便爬啦。看看你家乡的天气如何吧?我先来:最近的话温度有点

儿回升大概最近一周平均下来是12到-3。

完整的源码💓免费自取👇👇

点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可!

🔨推荐往期文章——

项目1.0 爬虫+数据分析实战:全球疫情最新消息、淘宝爬虫、秒杀脚本

【Python合集系列】爬虫有什么用,网友纷纷给出自己的答案,王老师,我..我想学那个..爬虫。可以嘛?“(代码免费分享)

项目1.0 超级玛丽

程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】

项目1.1 扫雷

Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......

项目1.6 植物大战僵尸

Pygame实战:据说—这是一款还原度超高的植物大战僵尸游戏,你感受下......

项目1.7 炸弹人游戏

Pygame实战:传承四十年的封神之作—炸弹人学院游戏【附源码】

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

🎄文章汇总——

汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~)