import requests
import json
from pyecharts.charts import Map,Geo
import jsonpath
from pyecharts import options as opts
# 1.动态加载,所以找到 ranklist
base_url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
headers = {
'User-Agent': "User-Agent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0"
}
# 2.发送请求,requests,模拟浏览器发送请求,获取相应数据
response = requests.post(url=base_url,headers=headers).text
# 3.解析数据,数据为json格式,loads将json转变为字典类型
data = json.loads(response)
# JsonPath 表达式是用类似于XPath 在 XML 文档中的定位,来检索设置 Json。JsonPath 中的“根成员对象”总是被引用为 $,
# 不管它是对象还是数组。表达式可以接受“点表达式”,..为递归搜索
name = jsonpath.jsonpath(data,"$..name")
confirm = jsonpath.jsonpath(data,"$..confirm")
# 将国家和确诊人数对应
datas = list(zip(name,confirm))
print(datas)
# 4.处理数据,数据可视化 matplotlib 和 pyecharts
# 中英文国家名称对应,pyecharts在全世界地图上,国家名称为英文,所以设置一个nameMap
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':'保加利亚'
爬虫02-打造世界地图
最新推荐文章于 2024-01-11 17:26:03 发布