利用几行python代码爬取全国疫情数据,全方位地图分析疫情地区分布

爬取全国疫情数据

所用的网页连接:https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist
可视化用到的模块:——>戳这里下载,也可以看最后,或私信我
如果没有模块的可自行下载:pip install 模块 命令下载
先看下整体效果图:
在这里插入图片描述
先导入库:

import requests #导入第三方库
import json # 轻量级的数据交互格式

测试网站:

url='https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
resp = requests.post(url)  #get post  对网址post请求
print(resp)     #字符串

在这里插入图片描述
在这里插入图片描述
查看数据类型:字典。
在这里插入图片描述

1。提取国家名字 病死率数量

#爬取全国疫情数据
url='https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
resp = requests.post(url).text  #get post  对网址post请求
# print(resp)     #字符串

2. 提取病死率数量

#病死率数量
confirm=jsonpath.jsonpath(data,"$..confirm")  #提取数据
print(confirm)  

3. 整理数据 `

# 整理数据 zip
a = zip(name,confirm)
print(a)

在这里插入图片描述

可视化地图分析

先导入库

from pyexpats.charts import Map  #地图matplotlib   :静态图
from pyexpats import options as opts  #配置项
from demol import nameMap   #自己写的代码模块 导入

地图创建:

#  可视化地图分析
map_ = Map(opts.InitOpts(width='1200px',height='600px')).add(series_name="世界各国的病死率",
                                                          data_pair = a,#输入数据
                                                          maptype = "world",#设置地图类型,世界地图
                                                          name_map = nameMap,#设置地图颜色分布
                                                          is_map_symbol_show=False

                                                         )

配置系列配置项:

#设置系列配置项
map_.set_series_opts(lable_opts=opts.LabelOpts(is_show=False))

设置全局配置项:

#设置全局配置项
map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"),#设置标题
                    visualmap_opts=opts.VisualMapOpts(max_=3000000,is_piecewise=True))#显示图例


展现为地图的形式:

#展现为地图的形式

map_.render("国外疫情情况.html")#以图表方式保存

最终代码:

import requests  #导入第三方库
import json #  轻量级的数据交互格式
import jsonpath  # 类似正则表达式  提取数据,信息抽取类库

from pyecharts import Map  #地图matplotlib   :静态图
from pyecharts import options as opts  #配置项
from demol import nameMap    #自己写的模块  引入


#爬取全国疫情数据
url='https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
resp = requests.post(url).text  #get post  对网址post请求
# print(resp)     #字符串

data = json.loads(resp)   #string——dict  方便后期提取内容
# print(type(data))

#1提取国家名字  病死率数量
name=jsonpath.jsonpath(data,"$..name")   #从网页源代码提取名字   
print(name)


#  #病死率数量
confirm=jsonpath.jsonpath(data,"$..confirm")  #提取数据
print(confirm)  


# 整理数据 zip
a = zip(name,confirm)
print(a)

#  可视化地图分析
map_ = Map(opts.InitOpts(width='1200px',height='600px')).add(series_name="世界各国的病死率",
                                                          data_pair = a,#输入数据
                                                          maptype = "world",#设置地图类型,世界地图
                                                          name_map = nameMap,#设置地图颜色分布
                                                          is_map_symbol_show=False

                                                         )

#设置系列配置项
map_.set_series_opts(lable_opts=opts.LabelOpts(is_show=False))


#设置全局配置项
map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"),#设置标题
                    visualmap_opts=opts.VisualMapOpts(max_=3000000,is_piecewise=True))#显示图例


#展现为地图的形式
map_.render("国外疫情情况.html")#以图表方式保存

形成这样的文件。
在这里插入图片描述
最后打开文件的形式:
在这里插入图片描述

什么是pyecharts?
在这里插入图片描述

遵守robots协议,爬虫。
附demo1模块:
在这里插入图片描述

				nameMap = {
				    'Singapore Rep.': '新加坡',
				    'Dominican Rep.': '多米尼加',
				    'Palestine': '巴勒斯坦',
				    'Bahamas': '巴哈马',
				    'Timor-Leste': '东帝汶',
				    'Afghanistan': '阿富汗',
				    'Guinea-Bissau': '几内亚比绍',
				    "Côte d'Ivoire": '科特迪瓦',
				    'Siachen Glacier': '锡亚琴冰川',
				    "Br. Indian Ocean Ter.": '英属印度洋领土',
				    'Angola': '安哥拉',
				    'Albania': '阿尔巴尼亚',
				    'United Arab Emirates': '阿联酋',
				    'Argentina': '阿根廷',
				    'Armenia': '亚美尼亚',
				    'French Southern and Antarctic Lands': '法属南半球和南极领地',
				    'Australia': '澳大利亚',
				    'Austria': '奥地利',
				    'Azerbaijan': '阿塞拜疆',
				    'Burundi': '布隆迪',
				    'Belgium': '比利时',
				    'Benin': '贝宁',
				    'Burkina Faso': '布基纳法索',
				    'Bangladesh': '孟加拉国',
				    'Bulgaria': '保加利亚',
				    'The Bahamas': '巴哈马',
				    'Bosnia and Herz.': '波斯尼亚和黑塞哥维那',
				    'Belarus': '白俄罗斯',
				    'Belize': '伯利兹',
				    'Bermuda': '百慕大',
				    'Bolivia': '玻利维亚',
				    'Brazil': '巴西',
				    'Brunei': '文莱',
				    'Bhutan': '不丹',
				    'Botswana': '博茨瓦纳',
				    'Central African Rep.': '中非共和国',
				    'Canada': '加拿大',
				    'Switzerland': '瑞士',
				    'Chile': '智利',
				    'China': '中国',
				    'Ivory Coast': '象牙海岸',
				    'Cameroon': '喀麦隆',
				    'Dem. Rep. Congo': '刚果(金)',
				    'Congo': '刚果(布)',
				    'Colombia': '哥伦比亚',
				    'Costa Rica': '哥斯达黎加',
				    'Cuba': '古巴',
				    'N. Cyprus': '北塞浦路斯',
				    'Cyprus': '塞浦路斯',
				    'Czech Rep.': '捷克',
				    'Germany': '德国',
				    'Djibouti': '吉布提',
				    'Denmark': '丹麦',
				    'Algeria': '阿尔及利亚',
				    'Ecuador': '厄瓜多尔',
				    'Egypt': '埃及',
				    'Eritrea': '厄立特里亚',
				    'Spain': '西班牙',
				    'Estonia': '爱沙尼亚',
				    'Ethiopia': '埃塞俄比亚',
				    'Finland': '芬兰',
				    'Fiji': '斐',
				    'Falkland Islands': '福克兰群岛',
				    'France': '法国',
				    'Gabon': '加蓬',
				    'United Kingdom': '英国',
				    'Georgia': '格鲁吉亚',
				    'Ghana': '加纳',
				    'Guinea': '几内亚',
				    'Gambia': '冈比亚',
				    'Guinea Bissau': '几内亚比绍',
				    'Eq. Guinea': '赤道几内亚',
				    'Greece': '希腊',
				    'Greenland': '格陵兰',
				    'Guatemala': '危地马拉',
				    'French Guiana': '法属圭亚那',
				    'Guyana': '圭亚那',
				    'Honduras': '洪都拉斯',
				    'Croatia': '克罗地亚',
				    'Haiti': '海地',
				    'Hungary': '匈牙利',
				    'Indonesia': '印度尼西亚',
				    'India': '印度',
				    'Ireland': '爱尔兰',
				    'Iran': '伊朗',
				    'Iraq': '伊拉克',
				    'Iceland': '冰岛',
				    'Israel': '以色列',
				    'Italy': '意大利',
				    'Jamaica': '牙买加',
				    'Jordan': '约旦',
				    'Japan': '日本',
				    'Kazakhstan': '哈萨克斯坦',
				    'Kenya': '肯尼亚',
				    'Kyrgyzstan': '吉尔吉斯斯坦',
				    'Cambodia': '柬埔寨',
				    'Korea': '韩国',
				    'Kosovo': '科索沃',
				    'Kuwait': '科威特',
				    'Lao PDR': '老挝',
				    'Lebanon': '黎巴嫩',
				    'Liberia': '利比里亚',
				    'Libya': '利比亚',
				    'Sri Lanka': '斯里兰卡',
				    'Lesotho': '莱索托',
				    'Lithuania': '立陶宛',
				    'Luxembourg': '卢森堡',
				    'Latvia': '拉脱维亚',
				    'Morocco': '摩洛哥',
				    'Moldova': '摩尔多瓦',
				    'Madagascar': '马达加斯加',
				    'Mexico': '墨西哥',
				    'Macedonia': '马其顿',
				    'Mali': '马里',
				    'Myanmar': '缅甸',
				    'Montenegro': '黑山',
				    'Mongolia': '蒙古',
				    'Mozambique': '莫桑比克',
				    'Mauritania': '毛里塔尼亚',
				    'Malawi': '马拉维',
				    'Malaysia': '马来西亚',
				    'Namibia': '纳米比亚',
				    'New Caledonia': '新喀里多尼亚',
				    'Niger': '尼日尔',
				    'Nigeria': '尼日利亚',
				    'Nicaragua': '尼加拉瓜',
				    'Netherlands': '荷兰',
				    'Norway': '挪威',
				    'Nepal': '尼泊尔',
				    'New Zealand': '新西兰',
				    'Oman': '阿曼',
				    'Pakistan': '巴基斯坦',
				    'Panama': '巴拿马',
				    'Peru': '秘鲁',
				    'Philippines': '菲律宾',
				    'Papua New Guinea': '巴布亚新几内亚',
				    'Poland': '波兰',
				    'Puerto Rico': '波多黎各',
				    'Dem. Rep. Korea': '朝鲜',
				    'Portugal': '葡萄牙',
				    'Paraguay': '巴拉圭',
				    'Qatar': '卡塔尔',
				    'Romania': '罗马尼亚',
				    'Russia': '俄罗斯',
				    'Rwanda': '卢旺达',
				    'W. Sahara': '西撒哈拉',
				    'Saudi Arabia': '沙特阿拉伯',
				    'Sudan': '苏丹',
				    'S. Sudan': '南苏丹',
				    'Senegal': '塞内加尔',
				    'Solomon Is.': '所罗门群岛',
				    'Sierra Leone': '塞拉利昂',
				    'El Salvador': '萨尔瓦多',
				    'Somaliland': '索马里兰',
				    'Somalia': '索马里',
				    'Serbia': '塞尔维亚',
				    'Suriname': '苏里南',
				    'Slovakia': '斯洛伐克',
				    'Slovenia': '斯洛文尼亚',
				    'Sweden': '瑞典',
				    'Swaziland': '斯威士兰',
				    'Syria': '叙利亚',
				    'Chad': '乍得',
				    'Togo': '多哥',
				    'Thailand': '泰国',
				    'Tajikistan': '塔吉克斯坦',
				    'Turkmenistan': '土库曼斯坦',
				    'East Timor': '东帝汶',
				    'Trinidad and Tobago': '特里尼达和多巴哥',
				    'Tunisia': '突尼斯',
				    'Turkey': '土耳其',
				    'Tanzania': '坦桑尼亚',
				    'Uganda': '乌干达',
				    'Ukraine': '乌克兰',
				    'Uruguay': '乌拉圭',
				    'United States': '美国',
				    'Uzbekistan': '乌兹别克斯坦',
				    'Venezuela': '委内瑞拉',
				    'Vietnam': '越南',
				    'Vanuatu': '瓦努阿图',
				    'West Bank': '西岸',
				    'Yemen': '也门',
				    'South Africa': '南非',
				    'Zambia': '赞比亚',
				    'Zimbabwe': '津巴布韦'
				}
  • 5
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎明之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值