1. import requests
  2. import pymysql
  3. import json
  4.  
  5. def create():
  6.  
  7. # 连接数据库
  8. db = pymysql.connect(host = 'localhost', user = 'root', password ='258000', database = 'yiqing',charset='utf8')
  9.  
  10. # 使用 cursor() 方法创建一个游标对象 cursor
  11. cursor = db.cursor()
  12.  
  13. # 使用 execute() 方法执行 SQL,如果表存在则删除
  14. cursor.execute("DROP TABLE IF EXISTS payiqing")
  15.  
  16. # 使用预处理语句创建表
  17. sql = """CREATE TABLE payiqing (
  18. Id INT PRIMARY KEY AUTO_INCREMENT,
  19. UpDateTime varCHAR(255),
  20. Province varchar(255),
  21. City varchar(255),
  22. Confirm varchar(255),
  23. Confirm_add varchar(255),
  24. Heal varchar(255),
  25. Dead varchar(255))"""
  26. #upDateTime,provinse,city,confirm,confirm_add,heal,dead
  27. cursor.execute(sql)
  28.  
  29. #关闭数据库连接
  30. db.close()
  31.  
  32. def insert(value):
  33.  
  34. # 连接数据库
  35. db = pymysql.connect(host = 'localhost', user = 'root', password ='258000', database = 'yiqing',charset='utf8')
  36.  
  37. # 使用 execute() 方法执行 SQL,如果表存在则删除
  38. cursor = db.cursor()
  39.  
  40. # 使用预处理语句插入数据
  41. sql = "INSERT INTO payiqing(UpDateTime,Province,City,Confirm,Confirm_add,Heal,Dead) VALUES ( %s,%s,%s,%s,%s,%s,%s)"
  42. #updateDateTime,provinse,city,confirm,confirm_add,heal,dead
  43.  
  44. try:
  45. cursor.execute(sql, value)
  46. db.commit()
  47. print('插入数据成功')
  48. except:
  49. db.rollback()
  50. print("插入数据失败")
  51. db.close()
  52.  
  53. create() # 创建表
  54.  
  55. #目标网站
  56. url = 'http://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
  57.  
  58. #请求资源,获取相应内容
  59. resp = requests.post(url)
  60.  
  61. #打印网页内容 print(resp.text)
  62.  
  63. # 将响应信息进行json格式化
  64. #一个从文件加载,一个从内存加载#json.load(filename)#json.loads(string)
  65. jsonData = json.loads(resp.text)
  66. data_all = json.loads(jsonData["data"])
  67.  
  68. #保存全国历史数据
  69. history = {}
  70.  
  71. #print(data_all.keys())
  72. i = data_all["chinaTotal"]
  73. history = {"lastUpdateTime":data_all["lastUpdateTime"],"confirm":i["confirm"] ,"heal":i["heal"],"dead":i["dead"],"suspect":i["suspect"]}
  74. #print(history)
  75.  
  76. #用于存储当日详细数据的集合
  77. details = []
  78. upDateTime = data_all["lastUpdateTime"]#储存最近更新时间
  79. data_province = data_all["areaTree"][0]["children"] #中国各省
  80.  
  81. #遍历存储
  82. for pro in data_province:
  83. provinse = pro["name"] #省名
  84. for cit in pro["children"]:
  85. city = cit["name"]
  86. confirm = cit["total"]["confirm"]
  87. confirm_add = cit["today"]["confirm"]
  88. heal = cit["total"]["heal"]
  89. dead = cit["total"]["dead"]
  90. insert((upDateTime,provinse,city,confirm,confirm_add,heal,dead))#存入数据库

Python:爬取中国各市的疫情数据并存储到数据库的更多相关文章

  1. Python爬取中国天气网

    Python爬取中国天气网 基于requests库制作的爬虫. 使用方法:打开终端输入 “python3 weather.py 北京(或你所在的城市)" 程序正常运行需要在同文件夹下加入一个 ...

  2. python 爬取天猫美的评论数据

    笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似 ...

  3. python爬取中国天气网站数据并对其进行数据可视化

    网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气   对爬取的数据进行可视化处理 按温度对城市进行排 ...

  4. Python爬取6271家死亡公司数据,一眼看尽十年创业公司消亡史!

    ​ 小五利用python将其中的死亡公司数据爬取下来,借此来观察最近十年创业公司消亡史. 获取数据 F12,Network查看异步请求XHR,翻页. ​ 成功找到返回json格式数据的url, 很多人 ...

  5. Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  6. Python爬取上交所一年大盘数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 半个码农2018 PS:如有需要Python学习资料的小伙伴可以加点 ...

  7. Python爬取6271家死亡公司数据,看十年创业公司消亡史

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 朱小五 凹凸玩数据 PS:如有需要Python学习资料的小伙伴可以加 ...

  8. python爬取中国大学排名

    教程来自:[Python网络爬虫与信息提取].MOOC. 北京理工大学 目标:爬取最好大学网前50名大学 代码如下: import requests from bs4 import Beautiful ...

  9. Python爬取某网站文档数据完整教程(附源码)

    基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...

随机推荐

  1. Flutter ChartSpace:通过跨端 Canvas 实现图表库

    基于Flutter 的图形语法库,通过跨端 Canvas ,将基于 Javascript 的图形语法库 ChartSpace 扩展至 Flutter 端 作者:字节跳动终端技术--胡珀 背景 数据平台 ...

  2. [2022-3-5] OICLASS-USACO提高组模拟赛2 B: Cow Frisbee

    题意 在一排奶牛中,对于每两头奶牛,如果两头奶牛之间没有奶牛比这两头高,则答案累加这两头奶牛的距离. 分析 设现在分析的奶牛为第 \(i\) 头,它向左扔出了一个飞盘,显然它的飞行高度为奶牛的高度.飞 ...

  3. http1.1与http2.0

    简介 http1.0: 1.0版本中每个TCP连接只能发送一个请求,数据发送完毕连接就关闭,如果还要请求其他资源,就必须重新建立TCP连接.(TCP为了保证正确性和可靠性需要客户端和服务器三次握手和四 ...

  4. SpringCloudStream(RabbitMQ&Kafka)&Spring-Kafka配置使用

    目录 是什么 解决问题 使用方式 创建生产者项目 pom yml 生产消息方法 接口 实现 创建消费者项目 pom yml 接收消息方法 重复消费 消费者yml 持久化 消费者负载个性配置(预拉取) ...

  5. 基于AE的基础的GIS系统的开发

    一个GIS系统需要的基本功能的代码 一些基本的拖拽操作就不讲了,直接上代码吧.   1. 打开.mxd文件 基本思路:判断mxd路径存在→打开mxd文件 string filename = Appli ...

  6. mybatis连接sql

    mysql6以上  com.mysql.cj.jdbc.Driver

  7. djinn

    靶机准备 将靶机ova文件导入虚拟机,并将网络设置为NAT 开机获得ip:192.168.164.188 kali:192.168.164.137 渗透测试 扫描端口 nmap -sS -sV -T5 ...

  8. 在线Remix链接本地文件夹

    问题 1.本地Remix环境版本滞后于在线编译器,新版本的语法在旧版本编译器中出现错误. 2.没有配置Vscode编译器,不便导入项目. 解决方案 *本解决方案基于Mac系统 创建共享文件夹 在本地创 ...

  9. CF487E Tourists(圆方树+树链剖分+multiset/可删堆)

    CF487E Tourists(圆方树+树链剖分+multiset/可删堆) Luogu 给出一个带点权的无向图,两种操作: 1.修改某点点权. 2.询问x到y之间简单路径能走过的点的最小点权. 题解 ...

  10. JavaScript01 js基础语法,数据类型

    JavaScript的概述: 1.组成 三部分组成 ecmaScript 基础语法 (es5) dom document object model 文档对象模型 (操作html文档内容) bom bo ...