中国天气网 &数据挖掘与可视化分析

243 阅读4分钟

中国天气网 &数据挖掘与可视化分析

预计时间:2023年5月5日-2023年5月7日

  • 数据采集 2023年5月5日 周五
  • 数据处理 2023年5月6日 周六
  • 数据可视化 2023年5月7日 周日

思路:获取数据 ----> 数据清洗及预处理 -----> 数据可视化

环境:Python3+Pycharm+Anaconda3

模块:scrapy;pandas;matplotlib

模块安装方法:pip install 模块名

例如:pip install scrapy

数据采集

使用scrapy爬虫框架进行数据爬取

开发工具:Pycharm

scrapy简介

一、Scrapy 基础知识

Scrapy 是适用于 Python 的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy 是一个框架,可以根据需求进行定制。它也提供了多种类型爬虫的基类,如 BaseSpider、sitemap 爬虫等,最新版本又提供了 web2.0 爬虫的支持。 1、Scrapy 基本模块

Scrapy Engine(引擎):Scrapy框架的核心部分。负责在Spider和ItemPipeline、Downloader、Scheduler中间通信、传递数据等。
​
Spider(爬虫):发送需要爬取的链接给引擎,最后引擎把其他模块请求回来的数据再发送给爬虫,爬虫就去解析想要的数据。这个部分是我们开发者自己写的,因为要爬取哪些链接,页面中的哪些数据是我们需要的,都是由程序员自己决定。
​
Scheduler(调度器):负责接收引擎发送过来的请求,并按照一定的方式进行排列和整理,负责调度请求的顺序等。
​
Downloader(下载器):负责接收引擎传过来的下载请求,然后去网络上下载对应的数据再交还给引擎。
​
Item Pipeline(管道):负责将Spider(爬虫)传递过来的数据进行保存。具体保存在哪里,应该看开发者自己的需求。
​
Downloader Middlewares(下载中间件):可以扩展下载器和引擎之间通信功能的中间件。
​
Spider Middlewares(Spider中间件):可以扩展引擎和爬虫之间通信功能的中间件。

scrapy工作流程如下

image-20230507165332994

URL:weather.cma.cn

1.创建scrapy工程

scrapy startproject [项目名称]

2.创建一个爬虫

scrapy genspider 爬虫名 域名

image-20230507165923861

scrapy爬虫项目中每个文件的作用如下:

  • items.py:用来存放爬虫爬取下来数据的模型;
  • middlewares.py:用来存放各种中间件的文件;
  • pipelines.py:用来将items的模型,存储到本地磁盘中;
  • settings.py:一些配置信息,比如请求头,地址代理等;
  • scrapy.cfg:项目的配置文件;
  • spiders:项目的爬虫都在这个目录下,可以看到我们刚创建的example这爬虫,就在这个目录下了;

item获取如下字段

image-20230507171257905

之后通过编写爬虫文件进行数据的采集

运行爬虫程序

scrapy crawl 爬虫名

采集到的数据如下

image-20230507171447919

数据处理

开发工具:jupyter-notebook

步骤:将采集到的数据保存为csv文件至本地,如:jiangsu.csv

使用Python的pandas库进行数据的清洗处理

将无用数据剔除,提取有效数据并统一数据格式

比如有空值数据需要去除,错误的数据需要归一化处理

这里的温度有℃符号,非数值型不好进行数据比较,需要将℃去除,

风级字段下需要的数据是级别等级数值,则需要将“微风”替换为1-2,并将其他的非数值数据进行去除

数据可视化

matplotlib图形库

提取出镇江和句容两个地区的天气数据

条形图,直方图,饼图,折线图,散点图,极坐标系图

可视化效果如下

image-20230508010701226

image-20230508010738638image-20230508010843531

image-20230508010906570

image-20230508010922798