中国天气网 &数据挖掘与可视化分析
预计时间: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工作流程如下
URL:weather.cma.cn
1.创建scrapy工程
scrapy startproject [项目名称]
2.创建一个爬虫
scrapy genspider 爬虫名 域名
scrapy爬虫项目中每个文件的作用如下:
items.py:用来存放爬虫爬取下来数据的模型;middlewares.py:用来存放各种中间件的文件;pipelines.py:用来将items的模型,存储到本地磁盘中;settings.py:一些配置信息,比如请求头,地址代理等;scrapy.cfg:项目的配置文件;spiders:项目的爬虫都在这个目录下,可以看到我们刚创建的example这爬虫,就在这个目录下了;
item获取如下字段
之后通过编写爬虫文件进行数据的采集
运行爬虫程序
scrapy crawl 爬虫名
采集到的数据如下
数据处理
开发工具:jupyter-notebook
步骤:将采集到的数据保存为csv文件至本地,如:jiangsu.csv
使用Python的pandas库进行数据的清洗处理
将无用数据剔除,提取有效数据并统一数据格式
比如有空值数据需要去除,错误的数据需要归一化处理
这里的温度有℃符号,非数值型不好进行数据比较,需要将℃去除,
风级字段下需要的数据是级别等级数值,则需要将“微风”替换为1-2,并将其他的非数值数据进行去除
数据可视化
matplotlib图形库
提取出镇江和句容两个地区的天气数据
条形图,直方图,饼图,折线图,散点图,极坐标系图
可视化效果如下