在前面对接口测试的知识体系相对来说写了很多的文章,今晚就结合部分的知识体系,把获取到的知识体系,结合pyecharts来数据进行一个简单的分析。实现的思路是访问豆瓣最新的电影,然后使用requests库对它进行请求,获取到服务端返回的数据后,依据获取的数据,分别取出电影的名称,电影的评分,然后形成可视化的东西,这样在可视化的界面中,就可以看到最近电影哪些是比较受欢迎的并且它的评分比较高,对我们出去看电影来说,也是一个刚需。
获取到的地址是https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20,然后发送GET请求,就会返回响应数据,在响应数据中获取到电影的名称,和电影相对应的评分,见实现的源码:
#!/usr/bin/env python
#coding:utf-8
#Author:WuYa
import requests
from pyecharts import Bar
def douBan():
movies=[]
for i in range(20):
r=requests.get('https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20')
title=r.json()['subjects'][i]['title']
rate=r.json()['subjects'][i]['rate']
movies.append({
'title':title,
'rate':rate
})
for item in movies:
print(item)
如上函数执行后,显示获取到的电影名称和评分,见执行后打印的信息:
在列表中获取电影的title和电影的评分单独的放到一个列表中,这里就会使用到Python的内置函数map和lambda匿名函数,见实现的代码:
titles=list(map(lambda x:x['title'],movies))
rates =list(map(lambda x: x['rate'], movies))
可以看到评分rate它是字符串的类型,那么我们需要对评分转成int类型,那么这个过程,数据类型的转换过程是字符串后,再转成float,再转成int类型,实现的代码为:
titles=list(map(lambda x:x['title'],movies))
rates =list(map(lambda x: x['rate'], movies))
titleRates=[]
for rate in rates:
titleRates.append(int(float(rate)))
当然获取到电影的title和评分后,并且单独的放在了列表中,下来使用可视化的过程可以使用第三方的库pyecharts,它提供了很多可以生成可视化的方法,后面文章中结合具体的例子对它逐步的介绍。这里就实现柱状图,鼠标放上去显示电影的评分,见实现这部分的完整代码:
#!/usr/bin/env python
#coding:utf-8
#Author:WuYa
import requests
from pyecharts import Bar
def douBan():
movies=[]
for i in range(20):
r=requests.get('https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20')
title=r.json()['subjects'][i]['title']
rate=r.json()['subjects'][i]['rate']
movies.append({
'title':title,
'rate':rate
})
titles=list(map(lambda x:x['title'],movies))
rates =list(map(lambda x: x['rate'], movies))
titleRates=[]
for rate in rates:
titleRates.append(int(float(rate)))
bar=Bar('豆瓣电影评分数据分析')
bar.use_theme('dark')
bar.add('豆瓣电影',titles,titleRates,is_more_utils=True)
bar.render('douban.html')
执行函数后,会在当前目录下生成douban.html,使用Chrome浏览器打开后,见显示的信息:
见鼠标放上去后具体电影显示的评分,见截图:
后续会逐步的更新文章,谢谢!