WEB API
web api是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互,请求的数据将以JSON或CSV格式返回。 通俗而言,就是自动从网站上爬取数据,实现最新信息的获取。 依赖于外部数据源的大多数应用程序都依赖于API调用,如集成社交媒体网站的应用程序 #requests包让Python程序能够轻松地向网站请求信息以及检查返回的响应。 (1)安装requests包
pip install requests
pip install --user requests
(2)导入Python网站内容请求包
import requests
案例一、自动下载github上星级最高的 Python项目信息,并对信息进行可视化 (1)处理API响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(url)
print("Status code:", r.status_code)
response_dict = r.json()
print("Total repositories:", response_dict['total_count'])
repo_dicts = response_dict['items']
【重难点】: requests模块中,r.json()为Requests中内置的JSON解码器 其中只有response返回为json格式时,用r.json()打印出响应的内容, 如果response返回不为json格式,使用r.json()会报错 (2)处理所获得的数据
names,stars=[],[]
plot_dicts=[]
for repo_dict in repo_dicts:
names.append(repo_dict["name"])
stars.append(repo_dict["stargazers_count"])
plot_dict={
"value":repo_dict["stargazers_count"],
"label":str(repo_dict['description']),
"xlink":repo_dict["html_url"]
}
plot_dicts.append(plot_dict)
(3)可视化
my_config = pygal.Config()
my_config.x_label_rotation = 45
my_config.show_legend = False
my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
my_config.truncate_label = 15
my_config.show_y_guides = False
my_config.width = 1000
my_style=RotateStyle("#206790",base_style=LightColorizedStyle)
chart=pygal.Bar(my_config,style=my_style)
chart.title='Most-Starred Python Projects on GitHub'
chart.x_labels = names
chart.add("",plot_dicts)
chart.render_to_file('python_repos.svg')
【重难点】: 在调用add()函数时,传递参数有3种形式: (1)传递一个字符串,传递一个列表 字符串用作标签,根据列表中值的大小进行每个点或线的绘图 (2)传递一个字符串,传递一个字典 字符串用作标签,根据字典中value键的值进行绘图,label键的值进行每个数据的标签设置,实现自定义内容提示,xlink键的值进行点击时响应的url设置(添加点击链接) 【注意】:要想实现如上功能,键必须为value、label、xlink,python自己回去判断读取。 (3)传递一个字符串,传递一个字典列表 逻辑与传递字典一致,只是接收了多个字典,可在同一张表中绘制多个柱状等。
|