1 import json 2 import requests 3 import jsonpath 4 5 6 from pyecharts.charts import Map,Geo 7 from pyecharts import options as opts 8 from pyecharts.globals import GeoType,RenderType 9 10 # 1.目标网址 11 url = \'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' 12 # 2.模拟浏览器实现访问url 13 resp = requests.post(url).text 14 # print(resp) 15 data = json.loads(resp) 16 # print(data) 17 # print(data) 18 # 3.从网页源代码中提取数据 19 name = jsonpath.jsonpath(data, "$..name") 20 print(len(name)) 21 confirm = jsonpath.jsonpath(data, "$..confirm") 22 print(len(confirm)) 23 # suspect = jsonpath.jsonpath(data, "$..suspect") 24 # print(len(suspect)) 25 # dead = jsonpath.jsonpath(data, "$..dead") 26 # print(len(dead)) 27 # heal = jsonpath.jsonpath(data, "$..heal") 28 # print(len(heal)) 29 # print(china) 30 # data_lists = [] 31 # for i in range(179): 32 # data_list = [] 33 # data_list.append(name[i]) 34 # data_list.append(confirm[i]) 35 # data_lists.append(data_list) 36 # print(data_lists) 37 38 a = zip(name, confirm) 39 40 41 nameMap = { 42 \'Singapore Rep.\': \'新加坡\', 43 \'Dominican Rep.\': \'多米尼加\', 44 \'Palestine\': \'巴勒斯坦\', 45 \'Bahamas\': \'巴哈马\', 46 \'Timor-Leste\': \'东帝汶\', 47 \'Afghanistan\': \'阿富汗\', 48 \'Guinea-Bissau\': \'几内亚比绍\', 49 "Côte d\'Ivoire": \'科特迪瓦\', 50 \'Siachen Glacier\': \'锡亚琴冰川\', 51 "Br. Indian Ocean Ter.": \'英属印度洋领土\', 52 \'Angola\': \'安哥拉\', 53 \'Albania\': \'阿尔巴尼亚\', 54 \'United Arab Emirates\': \'阿联酋\', 55 \'Argentina\': \'阿根廷\', 56 \'Armenia\': \'亚美尼亚\', 57 \'French Southern and Antarctic Lands\': \'法属南半球和南极领地\', 58 \'Australia\': \'澳大利亚\', 59 \'Austria\': \'奥地利\', 60 \'Azerbaijan\': \'阿塞拜疆\', 61 \'Burundi\': \'布隆迪\', 62 \'Belgium\': \'比利时\', 63 \'Benin\': \'贝宁\', 64 \'Burkina Faso\': \'布基纳法索\', 65 \'Bangladesh\': \'孟加拉国\', 66 \'Bulgaria\': \'保加利亚\', 67 \'The Bahamas\': \'巴哈马\', 68 \'Bosnia and Herz.\': \'波斯尼亚和黑塞哥维那\', 69 \'Belarus\': \'白俄罗斯\', 70 \'Belize\': \'伯利兹\', 71 \'Bermuda\': \'百慕大\', 72 \'Bolivia\': \'玻利维亚\', 73 \'Brazil\': \'巴西\', 74 \'Brunei\': \'文莱\', 75 \'Bhutan\': \'不丹\', 76 \'Botswana\': \'博茨瓦纳\', 77 \'Central African Rep.\': \'中非共和国\', 78 \'Canada\': \'加拿大\', 79 \'Switzerland\': \'瑞士\', 80 \'Chile\': \'智利\', 81 \'China\': \'中国\', 82 \'Ivory Coast\': \'象牙海岸\', 83 \'Cameroon\': \'喀麦隆\', 84 \'Dem. Rep. Congo\': \'刚果(金)\', 85 \'Congo\': \'刚果(布)\', 86 \'Colombia\': \'哥伦比亚\', 87 \'Costa Rica\': \'哥斯达黎加\', 88 \'Cuba\': \'古巴\', 89 \'N. Cyprus\': \'北塞浦路斯\', 90 \'Cyprus\': \'塞浦路斯\', 91 \'Czech Rep.\': \'捷克\', 92 \'Germany\': \'德国\', 93 \'Djibouti\': \'吉布提\', 94 \'Denmark\': \'丹麦\', 95 \'Algeria\': \'阿尔及利亚\', 96 \'Ecuador\': \'厄瓜多尔\', 97 \'Egypt\': \'埃及\', 98 \'Eritrea\': \'厄立特里亚\', 99 \'Spain\': \'西班牙\', 100 \'Estonia\': \'爱沙尼亚\', 101 \'Ethiopia\': \'埃塞俄比亚\', 102 \'Finland\': \'芬兰\', 103 \'Fiji\': \'斐\', 104 \'Falkland Islands\': \'福克兰群岛\', 105 \'France\': \'法国\', 106 \'Gabon\': \'加蓬\', 107 \'United Kingdom\': \'英国\', 108 \'Georgia\': \'格鲁吉亚\', 109 \'Ghana\': \'加纳\', 110 \'Guinea\': \'几内亚\', 111 \'Gambia\': \'冈比亚\', 112 \'Guinea Bissau\': \'几内亚比绍\', 113 \'Eq. Guinea\': \'赤道几内亚\', 114 \'Greece\': \'希腊\', 115 \'Greenland\': \'格陵兰\', 116 \'Guatemala\': \'危地马拉\', 117 \'French Guiana\': \'法属圭亚那\', 118 \'Guyana\': \'圭亚那\', 119 \'Honduras\': \'洪都拉斯\', 120 \'Croatia\': \'克罗地亚\', 121 \'Haiti\': \'海地\', 122 \'Hungary\': \'匈牙利\', 123 \'Indonesia\': \'印度尼西亚\', 124 \'India\': \'印度\', 125 \'Ireland\': \'爱尔兰\', 126 \'Iran\': \'伊朗\', 127 \'Iraq\': \'伊拉克\', 128 \'Iceland\': \'冰岛\', 129 \'Israel\': \'以色列\', 130 \'Italy\': \'意大利\', 131 \'Jamaica\': \'牙买加\', 132 \'Jordan\': \'约旦\', 133 \'Japan\': \'日本\', 134 \'Japan\': \'日本本土\', 135 \'Kazakhstan\': \'哈萨克斯坦\', 136 \'Kenya\': \'肯尼亚\', 137 \'Kyrgyzstan\': \'吉尔吉斯斯坦\', 138 \'Cambodia\': \'柬埔寨\', 139 \'Korea\': \'韩国\', 140 \'Kosovo\': \'科索沃\', 141 \'Kuwait\': \'科威特\', 142 \'Lao PDR\': \'老挝\', 143 \'Lebanon\': \'黎巴嫩\', 144 \'Liberia\': \'利比里亚\', 145 \'Libya\': \'利比亚\', 146 \'Sri Lanka\': \'斯里兰卡\', 147 \'Lesotho\': \'莱索托\', 148 \'Lithuania\': \'立陶宛\', 149 \'Luxembourg\': \'卢森堡\', 150 \'Latvia\': \'拉脱维亚\', 151 \'Morocco\': \'摩洛哥\', 152 \'Moldova\': \'摩尔多瓦\', 153 \'Madagascar\': \'马达加斯加\', 154 \'Mexico\': \'墨西哥\', 155 \'Macedonia\': \'马其顿\', 156 \'Mali\': \'马里\', 157 \'Myanmar\': \'缅甸\', 158 \'Montenegro\': \'黑山\', 159 \'Mongolia\': \'蒙古\', 160 \'Mozambique\': \'莫桑比克\', 161 \'Mauritania\': \'毛里塔尼亚\', 162 \'Malawi\': \'马拉维\', 163 \'Malaysia\': \'马来西亚\', 164 \'Namibia\': \'纳米比亚\', 165 \'New Caledonia\': \'新喀里多尼亚\', 166 \'Niger\': \'尼日尔\', 167 \'Nigeria\': \'尼日利亚\', 168 \'Nicaragua\': \'尼加拉瓜\', 169 \'Netherlands\': \'荷兰\', 170 \'Norway\': \'挪威\', 171 \'Nepal\': \'尼泊尔\', 172 \'New Zealand\': \'新西兰\', 173 \'Oman\': \'阿曼\', 174 \'Pakistan\': \'巴基斯坦\', 175 \'Panama\': \'巴拿马\', 176 \'Peru\': \'秘鲁\', 177 \'Philippines\': \'菲律宾\', 178 \'Papua New Guinea\': \'巴布亚新几内亚\', 179 \'Poland\': \'波兰\', 180 \'Puerto Rico\': \'波多黎各\', 181 \'Dem. Rep. Korea\': \'朝鲜\', 182 \'Portugal\': \'葡萄牙\', 183 \'Paraguay\': \'巴拉圭\', 184 \'Qatar\': \'卡塔尔\', 185 \'Romania\': \'罗马尼亚\', 186 \'Russia\': \'俄罗斯\', 187 \'Rwanda\': \'卢旺达\', 188 \'W. Sahara\': \'西撒哈拉\', 189 \'Saudi Arabia\': \'沙特阿拉伯\', 190 \'Sudan\': \'苏丹\', 191 \'S. Sudan\': \'南苏丹\', 192 \'Senegal\': \'塞内加尔\', 193 \'Solomon Is.\': \'所罗门群岛\', 194 \'Sierra Leone\': \'塞拉利昂\', 195 \'El Salvador\': \'萨尔瓦多\', 196 \'Somaliland\': \'索马里兰\', 197 \'Somalia\': \'索马里\', 198 \'Serbia\': \'塞尔维亚\', 199 \'Suriname\': \'苏里南\', 200 \'Slovakia\': \'斯洛伐克\', 201 \'Slovenia\': \'斯洛文尼亚\', 202 \'Sweden\': \'瑞典\', 203 \'Swaziland\': \'斯威士兰\', 204 \'Syria\': \'叙利亚\', 205 \'Chad\': \'乍得\', 206 \'Togo\': \'多哥\', 207 \'Thailand\': \'泰国\', 208 \'Tajikistan\': \'塔吉克斯坦\', 209 \'Turkmenistan\': \'土库曼斯坦\', 210 \'East Timor\': \'东帝汶\', 211 \'Trinidad and Tobago\': \'特里尼达和多巴哥\', 212 \'Tunisia\': \'突尼斯\', 213 \'Turkey\': \'土耳其\', 214 \'Tanzania\': \'坦桑尼亚\', 215 \'Uganda\': \'乌干达\', 216 \'Ukraine\': \'乌克兰\', 217 \'Uruguay\': \'乌拉圭\', 218 \'United States\': \'美国\', 219 \'Uzbekistan\': \'乌兹别克斯坦\', 220 \'Venezuela\': \'委内瑞拉\', 221 \'Vietnam\': \'越南\', 222 \'Vanuatu\': \'瓦努阿图\', 223 \'West Bank\': \'西岸\', 224 \'Yemen\': \'也门\', 225 \'South Africa\': \'南非\', 226 \'Zambia\': \'赞比亚\', 227 \'Zimbabwe\': \'津巴布韦\' 228 } 229 230 231 map_ = Map(opts.InitOpts(width=\'1200px\', height=\'600px\')).add(series_name="世界各国病死率", # 设置提示框标签 232 data_pair=a, # 输入数据 233 maptype="world", # 设置地图类型为世界地图 234 name_map=nameMap, # 添加映射 235 is_map_symbol_show=False # 不显示标记点 236 ) 237 238 # 设置系列配置项 239 map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 不显示国家名称 240 # 设置全局配置项 241 map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"), # 设置图标题 242 visualmap_opts=opts.VisualMapOpts(max_=1000000, is_piecewise=True)) # 显示图例 243 244 # map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"), # 设置图标题 245 # visualmap_opts=opts.VisualMapOpts(pieces=[ # 自定义分组的分店和颜色 246 # {"min": 900000, "color": "#800000"}, 247 # {"min": 50000, "max": 500000, "lable":\'0.15~0.19\', "color": "#AA0000"}, # 栗色 248 # {"min": 10000, "max": 50000, "color": "#CC0000"}, # 耐火砖 249 # {"min": 1000, "max": 10000, "color": "#FF0000"}, # 印度红 250 # {"min": 0, "max": 1000, "color": "#FF3333"}, # 玫瑰棕色 251 # {"max": 0, "color": "#FFCCCC"}, # 薄雾玫瑰 252 # ], 253 254 255 # is_piecewise=True)) # 显示分段式图例 256 257 258 map_.render("国外疫情情况.html")