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

简介: 豆瓣超高评分《扫黑风暴》热评可视化展示

结果展示

目录详情

网页分析

发送请求

热评

数据分析

可视化展示

网页分析

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

网页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)
        if resp.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 张艺兴和江疏影仿佛跟其他的演员不在一部剧里


多页

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

https://movie.douban.com/subject/35202793/comments?percent_type=&start=20&limit=20&status=P&sort=new_score&comments_only=1&ck=8_y9
https://movie.douban.com/subject/35202793/comments?percent_type=&start=40&limit=20&status=P&sort=new_score&comments_only=1&ck=8_y9
https://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'

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

    for page in range(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)

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

总结

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

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

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

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

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

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

相关文章
|
5月前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
230 2
Python爬虫案例:抓取猫眼电影排行榜
|
5月前
|
数据可视化 数据挖掘
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
|
3月前
|
搜索推荐 C语言
青年歌手大赛:实时评分统计与分析程序设计
青年歌手大赛评分系统:C语言实现平均分计算(剔除最高与最低分) 在青年歌手大赛中,为了确保评分的公平性和准确性,本程序采用C语言设计了一套评分统计方案。该方案的核心功能是在收集10位评委对一位歌手的评分后,自动剔除一个最高分和一个最低分,然后计算剩余8个有效评分的平均值。
|
5月前
|
数据采集 XML 自然语言处理
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
R语言汽车口碑数据采集抓取、文本数据分词和词云可视化实现
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
|
5月前
|
数据可视化
R语言大学城咖啡店消费问卷调查数据报告:信度分析、主成分分析可视化
R语言大学城咖啡店消费问卷调查数据报告:信度分析、主成分分析可视化
|
5月前
|
数据可视化 数据挖掘 网络可视化
R语言复杂网络分析各大电视台合播电视剧数量可视化
R语言复杂网络分析各大电视台合播电视剧数量可视化
|
5月前
|
数据采集 数据可视化 数据挖掘
‘kaggle视频游戏销售数据的可视化和分析‘项目实现
‘kaggle视频游戏销售数据的可视化和分析‘项目实现
|
5月前
|
数据可视化 Python
利用Pandas探究自行车租赁随时间及天气变化的分布情况并可视化(附源码 超详细)
利用Pandas探究自行车租赁随时间及天气变化的分布情况并可视化(附源码 超详细)
111 1
|
5月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】关联模式评估方法及Apriori算法超市购物应用实战(超详细 附源码)
【数据挖掘】关联模式评估方法及Apriori算法超市购物应用实战(超详细 附源码)
154 0