【python爬虫系列】Python爬取疫情数据并生成地图

数据

https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist

我们来看一下数据:我们点击Network,可能需要加载可以点击Ctrl+R进行加载,然后点击All,我们可以在左侧Name中找到ranklist,从图中可以看到data中的数据是我们要找的数据
在这里插入图片描述接下来我们就要找我们要爬取数据的网址:
从图中选中ranklist之后,点击XHR,然后点击下面的Header之后,我们可以看到Request URL和Request Method,也就是我们代码中的目标网站以及请求资源
在这里插入图片描述

模块环境安装

如果pycharm提示没有此模块,我们可以进行模块的安装,步骤:File->Settings->Project->Project Interpreter->点击加号输入我们要安装的模块进行安装

import requests
import json
import jsonpath
from pyecharts.charts import Map,Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType,RenderType

demo

import requests
import json
import jsonpath
from pyecharts.charts import Map,Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType,RenderType



#1.目标网站
url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'

#2.请求资源,获取响应内容,要的是数据,通过requests第三方工具发送请求
resp = requests.post(url)

#3.获取数据
# 类型转换 将json字符串转为字典
data=json.loads(resp.text)      # data的类型:class dict
name = jsonpath.jsonpath(data,"$..name")   #$表示根目录 ..是任意位置
#name打印出来的是所有国家的名称,所以相应的我们可以分别获取确诊人数,死亡人数等
confirm=jsonpath.jsonpath(data,"$..confirm")
# confirm打印出来的是所有国家确诊的人数

# 数据处理
data_list=list(zip(name,confirm))
#data_list打印出来是:[('美国', 30853032), ('巴西', 12404414), ('印度', 11908910),.......],即将上面的name和confirm一一对应起来

# 4.保存数据(可选)
# 可视化  matplotlib 和 pyecharts
# 这里有个问题就是国外的国家名都是英文,所以这里要引入一个国家名中英文对应的字典
nameMap = {
  
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值