Py学习  »  Python

Python抓取《爱情公寓》3万条评论,分析后竟然是这个结果!

不正经程序员 • 4 年前 • 396 次点击  

图/ Pixabay 

新年伊始,《爱情公寓5》终于播出了,这部倍受质疑的剧,在豆瓣评分只有 5.1,创下了系列新低。

▲ 爱情公寓系列豆瓣评分

对于这部剧,观众们到底如何评价的呢?

今天小编就为大家揭晓。


一、数据获取

1、数据从哪来?

本来想去豆瓣上的评论,无奈,豆瓣被大家玩坏了,现在豆瓣只能查看 200 条评论数据

▲ 豆瓣评论

所以,只能转战爱奇艺

打开爱奇艺的《爱情公寓5》播放页面,往下拉

可以看到全部评论 3.1W。

▲ 爱奇艺评论

继续拉

可以看到一个点ji加载更多的按钮

▲ 点击加载

此时我们按下 F12,打开开发者工具

点击加载更多

不出意外的话,可以看到如下一个请求。

▲ 加载评论请求

get_comments.action.action 好像熟悉的 Struts 的感觉

跑题了,我们继续。

接下来,将请求拷贝出,放到 Postman 中请求

可以看到,同样可以直接请求成功。

▲ Postman中请求

2、请求参数分析

请求中有下面几个重要参数:

agent_type:118
business_type:17
content_id:11298454000
last_id:229289743821
page:
page_size:20
types:time
  • content_id、business_type、agent_type:暂时不清楚作用,但是不能省略
  • last_id:上一次响应的最后一个id
  • page:页数
  • page_size:每页数据量
  • types:time,应该是按时间进行排序

默认是使用 last_id 来进行分页请求的。

经测试,也可以使用 page 进行分页请求。

本文使用 last_id 来进行分页请求

page_size 经测试最大为 40。

{
"data": "page_size must be less than 40",
"code": "B00004",
"msg": "page_size must be less than 40"
}

3、响应数据分析

从响应中筛选出了如下字段:

{
"data": {
"count": 10,
"totalCount": 30884,
"comments": [
{
"id": "229316766721",
"content": "除了又唱又跳的这一点吐槽。。。。",
"addTime": 1579352916,
"userInfo": {
"uname": "南佲",
"gender": "0",
"vipType": 0
},
},
  • count:本次请求的数目
  • totalCount:总数量
  • comments:评论列表
  • content:评论内容
  • addTime:评论时间,Unix 时间戳
  • userInfo:评论用户信息
  • gender:性别,1 为男性,0 为女性
  • vipType:感觉像是否是 VIP的标志

数据处理

小伙伴们也许发现了,爱奇艺的评价中并没有分数这个选项,这就很难判断观众到底是喜欢,或者是讨厌该剧。

下面,我们使用文本情感分析接口对评论数据进行分析

文本情感分析接口,百度、腾讯等都有免费体验的 API 接口。

▲ 腾讯云文本情感分析API

https://cloud.tencent.com/document/api/271/35497

除了一些噪音数据,大部分可以分析出结果。

▲ 评论情感分析结果

每一条评论的情感属性、正面情感概率,都可以统计出来。

二、数据可视化

观众性别分布

评论结果中有用户数据,其中 1 为男性,0 为女性。

▲ 观众性别分布

可以看出,男女观众数量基本一致,说明没有明显的性别偏好。

词云分析

首先我们从最简单的词云分析开始。

本着能不写代码就不写代码的原则,这里我们还是使用 WordArt 在线工具进行制作。

▲ 爱情公寓评论词云

可以看出,大部分观众都是带着回忆来看的,总体评价较好。

从词云结果中并不能反映出大家对该片的评价。

▲ 爱情公寓评论词云

评论时,大家喜欢用什么表情?

评论很多观众都使用了表情,这一点从词云中也能看出,如词云中的微笑、流泪、撇嘴、呲牙、发呆、偷笑等。

▲ 评论表情

表情存储时,使用的是 [] 对字符进行包围的,如 😀 会在文本中显示为[微笑],从评论文本中解析出由 [] 包围的字符串即可。

观众最喜欢用哪些表情,一定程度上代表了观众对这部剧的态度。

▲ 评论区表情分布

分布结果中可以看出,😍、😀、😢三个表情占据了 52.6% 的比例。

这里的微笑,不知道是不是呵呵的意思。

流泪,不知道是失望还是感动。

不过,长尾上的表情,大部分是一些负面含义的表情,如发呆、可怜、抓狂、流汗、发怒、敲打等。

评论情感分析

首先有效评论情感属性中,72% 的为正面情感属性,也验证了上面词云的结果,说明爱奇艺上大部分观众对该持有好评。

▲ 情感属性分布

喜欢的都说了什么?

根据情感分析结果,筛选出其中正向情感的评论,再次制作词云。

▲ 正面评论词云

来了、终于等到你、期待、我的青春等词,出现较多。

说明观众大都是抱着对以往《爱情公寓》系列的期待来看该剧的。

不喜欢的说了什么?

▲ 负面评论词云

流汗、尴尬、冷汗,看出来,负面评价的大都是对剧情或者人物演技的不满意

总结

对于爱 5,不知道有多少人呢看了的,反正小编是没时间看。

从网上的评价来看,大都是一个字:尬!

▲▲

爱 5 作为最终季,也算是导演给大家的一个答复(yingfu)!

不过,我想大多数人都是抱着情怀和回忆看的,早点看完,早点拉倒~

▲ 万幸


说点别的

最近挺不太平的,大家出门玩注意安全,勤洗手讲卫生!

武装好自己!




热 文 推 荐 



↓↓ 不止技术 ↓↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53383
 
396 次点击