利用scrapy+scrapy-redis+selenium爬取aqi天气网全国所有城市的天气信息近50W条
scrapy主要用来做并发,非selenium渲染页面下的请求和存储io操作
redis可以做增量(城市链接不做指纹)或分布式(继承scrapyredis爬虫类),本次只做断点续爬(利用redis保存url指纹——集合、请求队列——有序集合)
selenium做month和day页面的渲染,这两个页面做了JS加密,selenium渲染完美解决。下载中间件重写process_request方法写入selenium操作,配合PhantomJS(此网页渲染对比chrome要快),取得数据重新封装response返回,引擎交给spider做解析。
数据保存为json格式,利用数据分析三件套:numpy、pandas、matplotlib进行数据清洗、展示。
先来一张全家福,看下七月初全国只要城市的aqi对比,其实好像还是能接受。。。调用了echart做渲染,效果比matplotlib好不少(^▽^)
深圳6月份的aqi走势图,深圳不愧是一线中空气质量最好的,六月份的不良天数仅为一天
和之前工作的广州做了下对比,生活之都的广州在空气质量上略逊一筹
后续会更新其他分析图表展示,jupyter数据清洗生成图表代码一并上传