前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >豆瓣电影评分数据分析

豆瓣电影评分数据分析

作者头像
无涯WuYa
发布2018-12-25 11:17:27
1.2K0
发布2018-12-25 11:17:27
举报

在前面对接口测试的知识体系相对来说写了很多的文章,今晚就结合部分的知识体系,把获取到的知识体系,结合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请求,就会返回响应数据,在响应数据中获取到电影的名称,和电影相对应的评分,见实现的源码:

代码语言:javascript
复制
#!/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匿名函数,见实现的代码:

代码语言:javascript
复制
titles=list(map(lambda x:x['title'],movies))
rates =list(map(lambda x: x['rate'], movies))

可以看到评分rate它是字符串的类型,那么我们需要对评分转成int类型,那么这个过程,数据类型的转换过程是字符串后,再转成float,再转成int类型,实现的代码为:

代码语言:javascript
复制
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,它提供了很多可以生成可视化的方法,后面文章中结合具体的例子对它逐步的介绍。这里就实现柱状图,鼠标放上去显示电影的评分,见实现这部分的完整代码:

代码语言:javascript
复制
#!/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浏览器打开后,见显示的信息:

见鼠标放上去后具体电影显示的评分,见截图:

后续会逐步的更新文章,谢谢!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档