项目功能设计:

  1. 定时爬取疫情数据存入Mysql
  2. 进行数据分析制作疫情报告
  3. 使用itchat给亲人朋友发送分析报告
  4. 基于Django做数据屏幕
  5. 使用Tableau做数据分析
来看看最终的效果

目前已经完成80% 完成后第一时间分享给大家

接下来我们来介绍爬取疫情数据

目标网址:丁香医生

import re
import time
import json
import datetime
import requests
import pymysql
import pandas as pdclass VirusSupervise(object):def __init__(self):self.url = 'https://3g.dxy.cn/newh5/view/pneumonia?scene=2&clicktime=1579582238&enterid=1579582238&from=timeline&isappinstalled=0'self.all_data = list()self.host_ip = "127.0.0.1"  # 你的mysql服务器地址self.host_user = "root"self.password = 123456  # 你的mysql密码def request_page(self):"""请求页面数据"""res = requests.get(self.url)res.encoding = 'utf - 8'pat0 = re.compile('window.getAreaStat = ([\s\S]*?)</script>')data_list = pat0.findall(res.text)data = data_list[0].replace('}catch(e){}', '')data = eval(data)return datadef deep_spider(self, data, province_name):"""深度提取出标签里详细的数据:param data::param province_name::return:"""for temp_data in data:self.all_data.append([temp_data["cityName"], temp_data["confirmedCount"], temp_data["curedCount"],temp_data["deadCount"], province_name, datetime.date.today(),datetime.datetime.now().strftime('%H:%M:%S')])def filtration_data(self):"""过滤数据"""temp_data = self.request_page()province_short_names, confirmed_counts, cured_counts, dead_counts = list(), list(), list(), list()for i in temp_data:province_short_names.append(i['provinceShortName'])  # 省份confirmed_counts.append(i['confirmedCount'])  # 确诊cured_counts.append(i['curedCount'])  # 治愈dead_counts.append(i['deadCount'])  # 死亡self.deep_spider(i['cities'], i["provinceShortName"])  # 深度解析数据添加到实例属性中data_all = pd.DataFrame(self.all_data, columns=["城市", "确诊", "治愈", "死亡", "省份", "日期", "时间"])# print(data_all[data_all["省份"] == "陕西"])df = pd.DataFrame()df['省份'] = province_short_namesdf['确诊'] = confirmed_countsdf['治愈'] = cured_countsdf['死亡'] = dead_countsprint(df)# data_all.to_csv("疫情数据_1.csv", encoding="utf_8_sig")return data_alldef insert_wis_sql(self):data = self.filtration_data()coon = pymysql.connect(host=self.host_ip, user=self.host_user, password=self.password, database="epidemic_data",charset="utf8")number = int(pd.read_sql("select cycle from all_data order by id DESC limit 1", coon)["cycle"].to_list()[0]) + 1print("正在向阿里云服务器插入数据: ", number)cursor = coon.cursor()  # 创建事务sql = "insert into all_data(cityName, confirmedCount, curedCount, deadCount, province_name, " \"date_info, detail_time, cycle) values(%s, %s, %s, %s, %s, %s, %s, %s)"print("正在插入数据...")for cityName, confirmedCount, curedCount, deadCount, province_name, date_info, detail_time in zip(data["城市"],data["确诊"], data["治愈"], data["死亡"], data["省份"], data["日期"], data["时间"]):cursor.execute(sql, (cityName, confirmedCount, curedCount, deadCount, province_name, date_info, detail_time, number))coon.commit()print("数据插入完成...")cursor.close()coon.close()if __name__ == '__main__':sup = VirusSupervise()sup.insert_wis_sql()

如果没有mysql服务器直接运行 sup.filtration_data() 然后使用pandas直接to_csv即可完成数据收集, 如果想定时爬去,给程序加上循环睡眠

效果展示:

如有问题欢迎交流!点个赞吧

Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(一)爬虫篇相关推荐

  1. Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(四)数据屏幕

    今天介绍给大家的是:如果使用 Python 制作数据屏幕,将从最基础的开始,如果熟悉 django 和 Python 的朋友可直接跳过 项目功能设计: 定时爬取疫情数据存入Mysql(爬虫篇) 进行数 ...

  2. Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(二)统计篇

    项目功能设计: 定时爬取疫情数据存入Mysql (已完成) 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 ...

  3. python 北上资金_python爬虫技术:北向资金数据自动爬取!

    好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...

  4. Python无框架分布式爬虫,爬取范例:拼多多商品详情数据,拼多多商品列表数据

    拼多多是中国领先的社交电商平台之一,是一家以"团购+折扣"为主要运营模式的电商平台.该平台上有海量的商品,对于商家和消费者来说都具有非常大的价值,因此,拼多多商品数据的采集技术非常 ...

  5. python漫画滤镜怎么实现的_基于Python实现的ComicReaper漫画自动爬取脚本

    转载请注明来源, 原文链接 : 讲真的, 手机看漫画翻页总是会手残碰到页面上的广告好吧, 再碰上站点的带宽还很低, 无疑是雪上加霜, 要是指定漫画的主页URL就能给我返回整本漫画的所有图片并且整理好存 ...

  6. python热词关系图_Python 爬取 热词并进行分类数据分析-[拓扑数据]

    日期:2020.01.29 博客期:137 星期三 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] c.[拓扑数据](本期博客) d.[数 ...

  7. 基于Python的必联网招标信息爬取系统 课程报告+代码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85672637 资源下载地址:https://download.csdn.net/downl ...

  8. html 爬数据,简单爬取html页面的表格中的数据

    关于爬虫方面本人小白一个,通过无所不能的度娘,从中汲取营养,得到一个简单的能用的例子,在这分享一下,供大家一起汲取. 首先说一下,你想从一个页面中获取到你想要的数据,首先你要先得到这个页面.然后把获取 ...

  9. 如何用Python自动爬取全国30+城市地铁图数据?

    阅读本文大概需要 3 分钟. 最近两天工作之余,开始涉猎python,自动爬取了全国30+城市地铁图数据,这里分享下整个爬虫过程 1. 数据来源 首先分析全国各个城市地铁图的数据来源,无非就是百度或者 ...

最新文章

  1. IOS开发错误library not found for -lXXX
  2. linux chmod和fchmod设置 文件和目录权限设置
  3. Linux内核网络数据包发送(一)
  4. 【bzoj 2460 [BeiJing2011]元素】
  5. Eclipse中输入系统变量和运行参数--转
  6. 用matlab实现感知机学习算法,训练分类器并解决井字游戏
  7. 大学生html5设计大赛方案,2018年大学生三维设计大赛策划书范文
  8. C语言 | 循环语句总结
  9. 【转】Ubuntu16.04安装 Matlab2018a详细教程
  10. 食品工程计算机辅助设计,食品工程CAD技术应用及实例
  11. JavaScript中调皮的undefined
  12. 和电商有关的词语_关于电商的一些词
  13. 8086 MOV 指令的注意事项
  14. 用生成器做斐波那契数列
  15. Javascript链式调用案例
  16. Android刷机Windows10,蓝魔i9s Win10+Android双系统的刷机教程及固件下载
  17. JSONObject.fromObject(obj) 报错
  18. 高通抓取ramdump
  19. C# OpenXml组件
  20. An error occurred.

热门文章

  1. 基于STM32实现I2C从机的数字数学计算器:用于执行加法、减法和乘法操作的深度解析及应用
  2. 邮件合并在打印学生信封上的应用
  3. Java仿微信时间显示
  4. 图标选择器之批量复制阿里云图标名称和图标代码
  5. virtualbox vbox 如何使多台虚拟机位于同一个局域网
  6. SSD和YOLO对小目标检测的思考
  7. 爬取京东上商品的所有详细信息
  8. map+area标签
  9. 免费参加全球最大的Spark+AI峰会(Databricks 2020年6月22-26日)!免费访问峰会主题演讲及分组会议!
  10. [python] 运算顺序