今天看啥  ›  专栏  ›  途途途途

豆瓣超高评分《扫黑风暴》热评爬取可视化展示

途途途途  · 简书  ·  · 2021-08-27 17:22

结果展示

目录详情

网页分析

发送请求

热评爬取

数据分析

可视化展示

网页分析

我们打开豆瓣短评,找到我们所要获取电影的短评列表。

网页F12打开浏览器开发者模式,找到如下

发送请求的真实链接:

数据是存储在一个json的数据集合里面的。

我们使用浏览器插件打开

我们要获取的图片信息都是在一个叫做html的列表里面。

老规矩,先获取json数据集。

发送请求

url =f'https://movie.douban.com/subject/35202793/comments?percent_type=&start={(page -1) *20}&limit=20&status=P&sort=new_score&comments_only=1'

print(url)

headers = {

'Cookie':'bid=Hgm5jLcvu9M; dbcl2="153819075:MtvprK7V/38"; ck=8_y9; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1629936489%2C%22https%3A%2F%2Fopen.weixin.qq.com%2F%22%5D; _pk_ses.100001.4cf6=*; __utma=30149280.232591547.1629936489.1629936489.1629936489.1; __utmb=30149280.0.10.1629936489; __utmc=30149280; __utmz=30149280.1629936489.1.1.utmcsr=open.weixin.qq.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __utma=223695111.1326858547.1629936489.1629936489.1629936489.1; __utmb=223695111.0.10.1629936489; __utmc=223695111; __utmz=223695111.1629936489.1.1.utmcsr=open.weixin.qq.com|utmccn=(referral)|utmcmd=referral|utmcct=/; push_noty_num=0; push_doumail_num=0; _vwo_uuid_v2=D8A1AD86A68FA87DAC0208F74852EA234|8c77aabd1c4b456acb80f56ce1913302; _pk_id.100001.4cf6=18e2fa2e664ebce9.1629936489.1.1629936615.1629936489.',

f'Referer':f'https://movie.douban.com/subject/35427471/comments?start=20&limit=20&status=P&sort=new_score',

'User-Agent': str(UserAgent().random)

}

resp = requests.get(url, headers=headers)

ifresp.status_code == requests.codes.ok:

text = resp.json()['html']

print(text)

成功获取到浏览器响应之后我们接下来获取每一部电影的

评分作者、评分时间、评分和评论等

# 姓名

cmt_name = div.xpath("./div[@class='comment']/h3/span[@class='comment-info']/a/text()")

cmt_names =''.join(cmt_name).strip()

# 评论时间

cmt_time = div.xpath("./div[@class='comment']/h3/span[@class='comment-info']/span[@class='comment-time ']/text()")

cmt_times =''.join(cmt_time).strip()

# 星评

star = div.xpath("./div[@class='comment']/h3/span[@class='comment-info']/span[2]/@title")

stars =''.join(star).strip()

# 评分

score = div.xpath("./div[@class='comment']/h3/span[@class='comment-info']/span[2]/@class")

scores =''.join(score).strip(' ')[7:8]

# 赞同人数

vote = div.xpath("./div[@class='comment']/h3/span[@class='comment-vote']/span[@class='votes vote-count']/text()")

votes =''.join(vote).strip()

# 评论内容

comment = div.xpath("./div[@class='comment']/p[@class=' comment-content']/span[@class='short']/text()")

comments =''.join(comment).strip()

数据提取如下:

春江一壶与君饮 2021-08-09 力荐 6744 5 这瓜保熟吗?我就问你这瓜保熟吗?爱的魔力转圈圈 2021-08-09 力荐 5231 5 那个死亡洒水车放的歌还是祝你平安。。。刘十九 2021-08-09 力荐 3666 5 能压住刘华强的,大概就是李丰田了,这选角绝了。前五集有点意思,剧情张弛有度,喜欢这黑色幽默的调调。Le Papillon 2021-08-10 力荐 4225 5 张艺兴可以啊!进步很大wind又续期 2021-08-10 很差 1918 1 晕了 第一集就看见张艺兴在抠牙,太恶心了,谁办案要抠牙的…🤮挖掘机铲喷子 2021-08-10 还行 9609 3 开头很不错,但是。。。有些地方真的太浮夸了。比如张艺兴的油头,江疏影一个记者居然在警察局那么横,你俩好像和别的演员不是一个次元的凉三 2021-08-09 力荐 2851 5 中央督导组吃的自助餐,感觉很接地气,领导们之间如履薄冰、小心翼翼的试探非常写实。另外,孙红雷、宁理、刘奕君对手戏绝了,很有张力。PS.其实更想看孙红雷演反派tt@DEEP 2021-08-09 推荐 6092 4 刘奕君演警察了哈哈,希望是个聪明的警察,要不然对不起你这些年演过那么多老奸巨猾的反派~kikioh 2021-08-09 推荐 3971 4 编剧是亮剑的作者都梁诶肖申克的舅妈 2021-08-09 推荐 3463 4 因为孙红雷还有宁理来看的,两个实力派演员简直是这种犯罪悬疑片的扛把子。薛梅被撞、马帅在监狱被审问等镜头让我想起西楼尘写的“混凝土里的命如草芥的鱼肉,防火门内是声色犬马的乾坤”。小七 2021-08-12 还行 4656 3 把张艺兴和江疏影的戏份去掉会好很多。这两人太出戏了!LMCRC 2021-08-09 推荐 2331 4 演员阵容非常强大,孙红雷宁理飙戏看的很过瘾,有时候文戏更能体现演员的功底,在牢狱里两人的聊天别有一番深意,既是过命的兄弟又藏着不想让对方知道的秘密,实在让人遐想不止浮影人生 2021-08-09 推荐 1936 4 王志飞老师竟然又演了个反派,太过瘾了。台词干脆利落,得知被查到十四年前的案件,就说了一句“掐掉”,效果足足的,果然是大佬既视感。Gore赞 2021-08-09 力荐 1747 5 奔着题材去看的,是真的没想到,惊喜连连,质感不输电影。而且全员演技在线,李成阳、何勇这两人一个眼神的交流,就擦出了火星子,预测这剧口碑低不了。飞扬跋扈 2021-08-11 还行 2702 3 张艺星刚吃完牛板筋吗 为什么总用手扣牙水浒三国金刚 2021-08-09 推荐 2041 4 剧情上来看,悬疑、犯罪、扫黑,就足以吊起观众的胃口,演员演技也不错,每个角色都是有灵魂的,尤其是宁理饰演的马帅,骨子里是个狠人,自残掰断手指来躲避审问,如果后面剧情不拉垮,是部值得推荐的好剧小熊爱吃曲奇 2021-08-10 很差 1868 1 太悬浮了,国产剧编剧真的不行✋。当红小花胡仙絮 2021-08-10 力荐 1992 5 看了五集忍不住打分,太精彩了,各位看到没有,以后都给我接这种剧本的剧,老戏骨飙戏太精彩了,张艺兴这次演的不错,真敢拍啊,太敢拍了屠龙胭脂 2021-08-13 还行 1297 3 张艺兴和江疏影仿佛跟其他的演员不在一部剧里山楂拿铁 2021-08-15 推荐 807 4 有两个人很拉胯,是谁我不说

多页爬取

多页数据分析的时候最简单的方法就是观察并分析多页连接的区别,如下:

https://movie.douban.com/subject/35202793/comments?percent_type=&start=20&limit=20&status=P&sort=new_score&comments_only=1&ck=8_y9https://movie.douban.com/subject/35202793/comments?percent_type=&start=40&limit=20&status=P&sort=new_score&comments_only=1&ck=8_y9https://movie.douban.com/subject/35202793/comments?percent_type=&start=60&limit=20&status=P&sort=new_score&comments_only=1&ck=8_y9

观察此链接除了start参数之外都没有变化,其实这个start参数就是控制翻页的。

它的变化规律就是(page-1)*20,据此我们可以构造出它的请求链接

url = f'https://movie.douban.com/subject/35202793/comments?percent_type=&start={(page - 1) * 20}&limit=20&status=P&sort=new_score&comments_only=1'

接下来我们就可以获取多页数据啦

forpageinrange(1,25+1):

print(f'-----------------正在抓取第{page}页影评-----------------')

url =f'https://movie.douban.com/subject/35202793/comments?percent_type=&start={(page -1) *20}&limit=20&status=P&sort=new_score&comments_only=1'

.....

数据存储

我们将获取到的数据存储到本地的excel之中,之前我有专门拉出来详细讲过,有兴趣的小伙伴可以参考

我是如何把python爬虫获取到的数据写入Excel的?

我们这里使用的是第一种,使用openpyxl来保存数据

# 创建workbook

ws = op.Workbook()

# 创建worksheet

wb = ws.create_sheet(index=0)

# 创建表头

wb.cell(row=1, column=1, value='作者')

wb.cell(row=1, column=2, value='时间')

wb.cell(row=1, column=3, value='星评')

wb.cell(row=1, column=4, value='评分')

wb.cell(row=1, column=5, value='赞同')

wb.cell(row=1, column=6, value='评论')

count =2

wb.cell(row=count, column=1, value=cmt_names)

wb.cell(row=count, column=2, value=cmt_times)

wb.cell(row=count, column=3, value=stars)

wb.cell(row=count, column=4, value=scores)

wb.cell(row=count, column=5, value=votes)

wb.cell(row=count, column=6, value=comments)

count +=1

print(cmt_names, cmt_times, stars, votes, scores, comments)

ws.save('扫黑风暴.xlsx')

词云展示

为了更加直观的展示电影所述,我一般都是使用词云来做直观的展示。

我们使用的是stylecloud。

使用pandas来读取我们刚才保存的数据。

使用jieba来切割分词

使用stopwords来设置停用词

有兴趣的小伙伴详情可以参考

如何使用python实现一个优雅的词云?(超详细)

rcv_data = pd.read_excel('你好,火焰蓝短评.xlsx')

c_title = rcv_data['评论'].tolist()

#观影评论词云图

wordlist = jieba.cut(''.join(c_title))

result =' '.join(wordlist)

pic ='img1.jpg'

gen_stylecloud(text=result,

icon_name="fab fa-apple",

font_path='msyh.ttc',

background_color="white",

output_name=pic,

custom_stopwords= ['了','的','是','也']

)

print('绘图成功!')

最终效果展示如下:

评分可视化分析

首先我们使用pandas读取数据统计各评分出现频次

# 读取数据

pd_data = pd.read_excel('./扫黑风暴.xlsx')

score = pd_data['评分'].value_counts()

'''

['4', '5', '3', '2', '1', '-']

[143, 104, 103, 76, 64, 10]

'''

然后使用图形可视化数据

从图中可以看出,大家对这部剧的认可之还是相当高的

没有看过的小伙伴还是值得去刷一刷的

点赞最多评论

我们来看一看点赞最多的评论到底说了什么?

# 读取数据

pd_data = pd.read_excel('./扫黑风暴.xlsx')

pd.set_option('display.max_columns',None)# 显示完整的列

pd.set_option('display.max_rows',None)# 显示完整的行

pd.set_option('display.expand_frame_repr',False)# 设置不折叠数据

# 最多播放

max_score = pd_data[pd_data['赞同'] == pd_data['赞同'].max()]

print(max_score)

我就不在此做其他项的可视化分析了,反正数据已经给你们了对吧!

总结

至此,《扫黑风暴》的豆瓣短评分析可视化就完成啦~~~

从分析可以看出,电视剧的整体口碑还是很不错的,

最难得在于除了好看之外,它还让观众深吸一口凉气。剧情中展现的案件,是经过中央政法委筛选而出的。

曾经的“操场埋尸案”和“孙小果案”都曾经引起整个社会的热议,

剧集不仅将这两个案件融入其中,还融入了“网贷陷阱”等一系列社会问题,尺度之大,在近年国产剧中堪称罕见。

而剖开细节,深入好看和大尺度背后,还有一层信仰,才真正卷起观众心里的风暴。

为中国反贪扫黑点赞!!!

有问题的小伙伴们欢迎下方留言讨论哈~




原文地址:访问原文地址
快照地址: 访问文章快照