豆瓣超高评分《你好,火焰蓝》热评生成精美词云!!!

简介: 豆瓣超高评分《你好,火焰蓝》热评生成精美词云!!!

结果展示

目录详情

网页分析

发送请求

热评分析

完整代码

精美词云

网页分析

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

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

发送请求的真实链接:

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

我们使用浏览器插件打开

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

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

 

发送请求

  url = f'https://movie.douban.com/subject/35231076/comments?percent_type=&start={(page - 1) * 20}&limit=20&status=P&sort=new_score&comments_only=1'
 
  headers = {
            'Cookie': 'll="118375"; bid=-0vQx1zNf9g; __utmc=30149280; __utmz=30149280.1626393826.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=223695111; __utmz=223695111.1626393826.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _vwo_uuid_v2=D3D09D476AD97DE25492B13E46DCC0FF0|b7ddbeee10c323627b2a1ed1fce3b44b; __gads=ID=a11b92658502a109-22900c2a5bca007e:T=1626393873:RT=1626393873:S=ALNI_MZbuKNW-xrOqCRLWhABJ0mmTU92Mg; __yadk_uid=UpfAkPPZNmGCYlDjV2D7pGcAJqNOLEcZ; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1626404180%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DtJ1wg7vbDM0tTcX_Blaz4Lokg24OTHJBYQXr-FPRas3CxkEMFvoM9H2cFY3nMJuK%26wd%3D%26eqid%3Ddd97e590000679a10000000560f0ccdd%22%5D; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1997475757.1626393826.1626393826.1626404180.2; __utmb=30149280.0.10.1626404180; __utma=223695111.51408786.1626393826.1626393826.1626404180.2; __utmb=223695111.0.10.1626404180; _pk_id.100001.4cf6=8e1ed7625dcefcf1.1626393826.2.1626404198.1626396404.',
            f'Referer': f'https://movie.douban.com/subject/35231076/comments?start={(page-1)*20}&limit=20&status=P&sort=new_score',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4503.5 Safari/537.36'
        }
  resp = requests.get(url, headers=headers)
  if resp.status_code == requests.codes.ok:
    text = resp.json()['html']
    print(text)
 

成功获取到浏览器响应之后我们接下来获取每一部电影的评分作者、评分时间、评分和评论

# 获取当前页面所有的div列表
  div_list = html_data.xpath("//div[@class='comment-item ']")
 
  for div in div_list:
      # 姓名
      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()
 
      # 评论内容
      comment = div.xpath("./div[@class='comment']/p[@class=' comment-content']/span[@class='short']/text()")
      comments = ''.join(comment).strip()
 
      count += 1
 
      time.sleep(random.random()*3)
      print(cmt_names, cmt_times, stars, comments)

数据提取如下:

李不秃. 2021-07-08 较差 我的天,这糟糕的演技和剧情,披着职业皮谈恋爱,一切为谈恋爱服务,工业糖精胡撒一气,这才第一集就看不下去了,才第一集哎,就忙着铺感情线了
土豆不见了 2021-07-08 推荐 救援场面看的很揪心,日常生活拍的很有趣,于是看的很上头,节奏再紧凑些就更加完美啦
冩潢の夢支棱!2021-07-08 力荐 25min,至少国内多一部消防战士为主角的剧还挺好的,我之前印象中没看到过几部,电影倒是有的,成品质量还是有很多很多可以改进的地方啦,比如坐在急救车里,却一点没有生死时速的移动感,比如隧道现场,一开始还对烟雾做了防备,结果深入现场后大家都跟没有烟雾一样,居然还在现场附近接生……这……不过我真的没有专业知识,大概会有专业的知识科普号来科普吧
丸皮 2021-07-08 还行 编剧不行……剧情和对话都太悬浮了……强行安排孕妇十秒钟生娃,更是没必要………啊!多好的题材啊!而且是原声!痛心…………祈祷俊子以后多接好剧!
一个康波的游戏 2021-07-08 力荐 剧本还行,没翻车,能看下去
琼葩 2021-07-08 推荐 咦?喜欢的男女主角搭戏了,突然拥有了海景房???
7.8虽然对男女主都有好感,但是自从知道男主女主名字之后就没期待过,竟然意外的还可以!剧情紧凑,救援场景真实,每对cp都挺甜,没有一个讨厌的角色,可以可以,就是男主再练练台词就好了。
Joyce0129 2021-07-09 力荐 本来以为是职业剧+甜宠剧,4集看完没想到是个喜剧,消防员日常打打闹闹太有趣了,有血有肉的日常场景更能全面展现消防员这个职业,救援场景也能看出来尽量还原了。目前来看男女主人设也都是直球型没有那么多误会和蒙在鼓里没办法相认的情节,适合ibg的看。剧情节奏很快,每集一个消防小知识也挺有趣的,剧荒打发时间看一看还是不错的。
彩虹海 2021-07-08 力荐 我宣布霍言和晏蓝就是坠坠坠坠吊的!!!好甜好甜好甜想嗑真人了……
TOB 2021-07-08 很差 本来不想发表评价的,但天天都挂在热搜上,没忍住点进去看了第一集,只能说本质偶像剧,这剧情真的不能说是对消防员的致敬。。。男女主演技也很堪忧。。。男主台词也太差了。。国内什么时候能拍一部真正的职业剧,我们普通观众真是吃了太多苦了【叹气】
孔鯉 2021-07-08 很差 把这片子拍成这样是对广大消防指战员的侮辱
Sugar 2021-07-09 力荐 一开始没报什么期望的,但后来看了几集之后觉得还挺甜的,节奏蛮快的,然后剧情也有我的苏点和爽点,蛮不错的。
豆友 2021-07-08 还行 其实也还好,毕竟消防这些也比较难拍,龚俊演技还是有的,蛮喜欢那种自然的演技。(但龚俊颜值还没有特别get到),女主不认识,也还行。但剧情看的其实还是稍微有点尴尬。
出来喝奶茶- 2021-07-09 力荐 刚把更新的4集看完,说说这剧吧,消医联动的题材吸引了我,再加上最近总是听见的龚俊这个名字,4集的剧情很紧凑不拖沓,有紧张,有搞笑,比预想中要好很多。不得不说龚俊的眼神戏真的很到位,和张慧雯的互动也很有爱,第一集含泪敬礼那里真的有被感动到,期待之后剧情的发展。

多页

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

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

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

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

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

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

# 多页抓取
for page in range(1, 10 + 1):
    print(f'-----------------正在抓取第{page}页影评-----------------')
    url = f'https://movie.douban.com/subject/35231076/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=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=comments)
  
  # 保存文件
  ws.save('你好,火焰蓝短评.xlsx')
 

词云展示

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

我们使用的是stylecloud。

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

使用jieba来切割分词

使用stopwords来设置停用词

  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('绘图成功!')
 


最终效果展示如下:

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

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

相关文章
|
23天前
Midjourney-03 收集Prompt 动漫风格 樱花 武士 魔法少女 自然 机甲 拟人动物 歌剧场景 星际飞船 神秘森林 精灵 详细记录 超多图片 多种风格 附带文本 关键词
Midjourney-03 收集Prompt 动漫风格 樱花 武士 魔法少女 自然 机甲 拟人动物 歌剧场景 星际飞船 神秘森林 精灵 详细记录 超多图片 多种风格 附带文本 关键词
17 0
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
纵横小说网站数据采集与分析实现
本文介绍了一个基于Python的纵横中文网数据采集与分析项目,旨在通过技术手段深入分析网络小说市场,掌握读者需求,评估作品质量,并为网站运营提供策略支持。
纵横小说网站数据采集与分析实现
|
5月前
|
数据采集 自然语言处理 数据可视化
ECharts 词云案例四—电影《千与千寻》部分短评
**使用ECharts和电影《千与千寻》短评创建的词云案例展示了数据可视化的力量。通过Python处理评论,提取关键词并计算频率,利用jieba和WordCloud生成词云,ECharts进一步增强了视觉效果。词云突出了角色如“千寻”、“无脸男”及关键词“勇气”、“成长”,揭示了观众的情感共鸣。示例代码和资源可在链接中获取。**
47 0
 ECharts 词云案例四—电影《千与千寻》部分短评
好的商业模式,神笔,一根笔,图库,将一张张的图片排列成一个库
好的商业模式,神笔,一根笔,图库,将一张张的图片排列成一个库
|
6月前
|
监控
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
480 0
|
数据采集 Java Web App开发
爬取英雄联盟皮肤图片
使用爬虫相关知识,进行爬取英雄联盟皮肤图片。
175 0
|
数据可视化 数据处理 数据格式
ggalluvial|炫酷桑基图(Sankey),你也可以秀
ggalluvial|炫酷桑基图(Sankey),你也可以秀
216 0
|
数据可视化 数据挖掘 Python
跟着春晚学配色:R语言ggplot2作图好看的春晚配色
跟着春晚学配色:R语言ggplot2作图好看的春晚配色
|
数据挖掘 Python
Python数据分析系列04-豆瓣影评、歌词词云分析
哈佛大学的校训之一:你所浪费的今天,是逝去的人所奢望的明天;你所厌恶的现在,是未来的你回不去的曾经。
Python数据分析系列04-豆瓣影评、歌词词云分析
|
数据采集 自然语言处理 Python
Python爬取《哆啦A梦-伴我同行2》影评,手把手带你绘制词云图!
Python爬取《哆啦A梦-伴我同行2》影评,手把手带你绘制词云图!
Python爬取《哆啦A梦-伴我同行2》影评,手把手带你绘制词云图!