疫情尚未结束,我们需要做好自己,时刻防范,不给别人添麻烦。
今天我们来尝试用Python抓取世界疫情,实现可视化地图展示。
话不多说直接开搞!
采集数据
1、数据来源
数据来源于TX新闻,链接展示不了,就只贴图了。
2、模块
import requests import csv # Python学习交流君羊:279199867
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\") ) # 完整代码及国内疫情数据抓取代码、视频讲解直接在Python学习交流群 279199867 自取即可。
国家地区
name_map = { \'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\': \'津巴布韦\', \'Comoros\': \'科摩罗\' } pieces = [ {\"min\": 1000000}, {\"min\": 100000, \"max\": 999999}, {\"min\": 10000, \"max\": 99999}, {\"min\": 1000, \"max\": 9999}, {\"min\": 100, \"max\": 999}, {\"min\": 0, \"max\": 99}, ]
写在最后
好了,今天的分享就差不多到这里了。
兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
那么对于这些大兄弟们,我上传了几套视频教程分享在下方,希望对大家有所帮助。
Python零基础入门全套教程
Python进阶全套教程
Python实战100例
当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地。
来源:https://www.cnblogs.com/hahaa/p/16851220.html
本站部分图文来源于网络,如有侵权请联系删除。