前言
大家早好 、午好 、晚好吖~
最近 ,又爆出了许多例 ,身在长沙得我前段时间不是在做核酸就是在做核酸得路上
虽然现在还是隔一天一捅(小声哔哔:我真的遭不住)希望疫情早日过去
疫情尚未结束 ,我们需要做好自己 ,时刻防范 ,不给别人添麻烦 。
今天我们来尝试用Python抓取世界疫情 ,实现可视化地图展示 。
采集数据
1 、数据来源
数据来源于TX新闻 ,链接展示不了 ,就只贴图了 。
2 、模块
import requests
import csv
requests发送请求模块 , 是第三方模块 ,需要手动安装 。
win + r输入cmd按回车打开命令提示符窗口 ,使用pip安装
csv是内置模块 ,无需安装 。
pip install requests
3 、代码展示
获取网页url ,我这里网址屏蔽了 ,不然不给过 。
url = https://****com/newsqa/v1/automation/modules/list?modules=FAutoCountryConfirmAdd,WomWorld,WomAboard
发送请求
response = requests.post(url)
获取数据
json_data = response.json()
解析数据
WomAboard = json_data[data][WomAboard]
for i in range(0, len(WomAboard)):
name = WomAboard[i][name]
confirm = WomAboard[i][confirm]
confirmAdd = WomAboard[i][confirmAdd]
heal = WomAboard[i][heal]
dead = WomAboard[i][dead]
print(name, confirm, confirmAdd, heal, dead)
保存数据
f = open(疫情数据.csv, mode=a, encoding=utf-8, newline=)
csv_writer = csv.writer(f)
csv_writer.writerow([name, confirm, confirmAdd, heal, dead])
4 、效果展示
完整代码及国内疫情数据抓取代码 、视频讲解直接点击下方自取即可 。
==点击蓝色字体自取 ,我都放在这里了 。==
数据可视化
1 、效果展示
接下来看看生成好的可视化世界疫情地图
由于地图是动态的,我就直接截图了 ,大家可以自己实践一下制作地图详细看 。
2 、代码展示
模块
import pandas as pd # 做表格操作的模块
from pyecharts.charts import Map # 绘图的模块
from pyecharts import options as opts
导入数据
df = pd.read_csv(疫情数据.csv)
name = df[name].tolist()
confirm = df[confirm].tolist()
print(name)
print(confirm)
c = (
Map(init_opts=opts.InitOpts(width=1400px, height=600px))
.add("累计确诊", [list(z) for z in zip(name, confirm)], "world", name_map=name_map, is_map_symbol_show=False)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="Map-世界地图"),
visualmap_opts=opts.VisualMapOpts(max_=1000000, is_piecewise=True, pieces=pieces),
)
.render("map_world.html")
)
国家地区
name_map = {
Singapore Rep.: 新加坡,
Dominican Rep.: 多米尼加,
Palestine: 巴勒斯坦,
Bahamas: 巴哈马,
Timor-Leste: 东帝汶,
Afghanistan: 阿富汗,
Guinea-Bissau: 几内亚比绍,
"Côte dIvoire": 科特迪瓦,
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: 津巴布韦,
Comoros: 科摩罗
}
pieces = [
{"min": 1000000},
{"min": 100000, "max": 999999},
{"min": 10000, "max": 99999},
{"min": 1000, "max": 9999},
{"min": 100, "max": 999},
{"min": 0, "max": 99},
]
尾语 ?
好了 ,今天的分享就差不多到这里了!
完整代码及国内疫情数据抓取代码 、视频讲解直接点击下方自取即可 。
==点击蓝色字体自取 ,我都放在这里了 。==
宁外给大家推荐一个好的教程:
【48小时搞定全套教程!你和大佬只有一步之遥【python教程】
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主 ,或点赞收藏评论一下我的文章叭!!!
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集、发布本站内容到任何网站 、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。