《后来的我们》上映了,或许大家有点小期待吧。毕竟,影片的主题曲《我们》,早就虐哭了不少人。电影能否跟歌曲一样深入人心?怀着这样的一种心情,下面就来看一下它的影评如何吧。

1.抓数据

通过试探知道:豆瓣影评设置权限,没有登陆的话,只能够看到前面的几十条短评,并且登录的时候需要输入验证码。所以考虑使用selenium来获取数据。
登录时需要的验证码,通过保存图片,然后手动输入
加群923414804免费获取数十套PDF资料,助力python学习

所以构造两个方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 登录
def login(url,username,password):
    brower.get(url)
    brower.find_element_by_css_selector('[class="nav-login"]').click()
    name = brower.find_element_by_id('email')
    name.clear()
    name.send_keys(username)
    pwd = brower.find_element_by_id('password')
    pwd.clear()
    pwd.send_keys(password)
    pic_src = brower.find_element_by_id('captcha_image').get_attribute('src')
    #调用获取验证码的方法
    cap_value = get_yzm(pic_src)
    yan_zheng_ma = brower.find_element_by_id('captcha_field')
    yan_zheng_ma.clear()
    yan_zheng_ma.send_keys(cap_value)
    brower.find_element_by_css_selector('[class="btn-submit"]').click()
    print('登陆成功')
# 获取验证码
def get_yzm(src):
    print("正在保存验证码图片")
    captchapicfile = "D:/pycharm/PycharmProjects/next_our/captcha.png"
    urllib.request.urlretrieve(src, filename=captchapicfile)
    print("请打开图片文件,查看验证码,输入单词......")
    captcha_value = input()
    return captcha_value

登陆成功之后,通过搜索框搜索《后来的我们》,进入详情页,随后进入短评列表


需要获取昵称,短评和赞同数

每一个步骤我们都构建一个方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 搜索电影
def seach(movie_name):
    inp_query = brower.find_element_by_id('inp-query')
    inp_query.clear()
    inp_query.send_keys(movie_name)
    submit = brower.find_element_by_css_selector('[type="submit"]')
    submit.click()
    sleep(1)
    brower.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[1]/div/div[1]/a').click()
    print("进入详情页")
# 进入短评列表
def into_comment():
    brower.find_element_by_xpath('//*[@id="comments-section"]/div[1]/h2/span/a').click()
    print("进入短评列表")
# 获取短评
def get_comment():
    wait.until(lambda brower : brower.find_element_by_css_selector('[class="next"]'))
    sleep(1)
    for i in range(1,21):
        comment = brower.find_element_by_xpath('//*[@id="comments"]/div[{}]/div[2]/p'.format(str(i))).text
        comment_name = brower.find_element_by_xpath('//*[@id="comments"]/div[{}]/div[2]/h3/span[2]/a'.format(str(i))).text
        votes = brower.find_element_by_xpath('//*[@id="comments"]/div[{}]/div[2]/h3/span[1]/span'.format(str(i))).text
        #构建字典
        data = {
            'comment': comment,
            'comment_name': comment_name,
            'votes': int(votes)
        }
        comments.insert_one(data)
        print('*'*100)
        print(data)
        print('成功存入数据库')

还有最重要的一步就是,需要进行翻页,然后重新获取短评信息

1
2
3
4
5
6
7

#翻页
def next_page():
    next = brower.find_element_by_css_selector('[class="next"]')
    try:
        next.click()
    except:
        logging.info("全部完成了")

ps:由于技术较渣,所以直接跳到最后一页,发现只有24页,所以直接使用循环了<~_~>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#使用PhantomJS
brower = webdriver.PhantomJS(executable_path="D:/phantomjs-2.1.1-windows/bin/phantomjs.exe")
wait = ui.WebDriverWait(brower,10)
# 数据库
client = pymongo.MongoClient('localhost',27017)
next_our = client['next_our']
comments = next_our['comments']
URL = 'https://movie.douban.com/'
username = '你的豆瓣账号'
password = '你的密码'
movie = '后来的我们‎'
if __name__=="__main__":
    login(URL,username,password)
    seach(movie)
    into_comment()
    for page in range(24):
        get_comment()
        next_page()

2.数据处理

在获取到数据之后,制作成图表,让我们更加直观的看到大体情况

1
2
3
4
5
6
7
8

series =[
    {
    'name':'评论点赞数',
    'data':[i for i in vote_list],
    'type':'column'
    }
]
charts.plot(series,show='inline',options=dict(title=dict(text='评论点赞数')))


从图中可以看出短评中最受欢迎的大概有2500票,并且大部分集中在前排,(这是后面没有多少人看,所以点赞少?)
咳咳。。。前排很重要呀

接下来把所有的评论制作成云图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

text=open('comment_list.txt', 'r',encoding='utf-8')
mytext=text.read()
cut = jieba.cut(mytext,cut_all=True)
split_cut ='/'.join(cut)
wc = WordCloud(background_color = "white", #设置背景颜色  
               max_words = 2000, #设置最大显示的字数  
               margin=5,
               font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",#不加这一句显示口字形乱码
               max_font_size = 80,  #设置字体最大值  
               random_state = 40, #设置有多少种随机生成状态,即有多少种配色方案  
    )  
mword =wc.generate(split_cut)
plt.imshow(mword)
plt.axis("off")
plt.show()

得到下面的云图:

从图中看到,大部分在评论周冬雨、感慨我们后来没有故事
ps:数据是4/29晚所爬取的

接下来统计一下赞同数前十的评论

昵称 获赞数 短评
Magic 2475 台词矫情的令人发指!
华盛顿樱桃树 2230 最好的是演员,周冬雨完全开辟出自己的戏路。小井进步惊人,已长出美丽。最差的是编剧,没有一场完全连贯的戏,几乎都是攒的。
痴痴的钟灵 1784 希望奶茶好好演戏唱歌,矫情的青春片已经没有市场了。吃完瓜回来,劝眼善良,中国的电影市场要被你们搞的烂透了。在工作日首日票房近3亿,把自己当妇联了么,【把没有市场收回,有,眼在何愁没有100亿.
昵称过期作废 1785 毫无看点可言。剧情处处是硬伤!这是电影吗?这是PPT,刘小姐,还是回去唱歌吧。
末药煎肉塔 1601 现在还把北京设定为梦想之城的,大概受众也是瞄准了小镇青年吧(多次冲北京喊话真是挺尴尬的)。剧情拖太长,唯一的泪点还是田壮壮演的老爸,周冬雨老演这种角色不会腻吗?
xiaoning 1373 真的很讨厌卖情怀的电影,而且还有一个不是很有才华的歌手做导演,要不是主题曲我应该都不会想看。(留言说我收钱黑的,老子收了一分黑钱我多的钱都亏出去行了吧,就这尴尬的台词乱拼凑的故事是在看ppt吗还用收钱黑,我真是谢你们大爷了,你不用管我觉得谁有才华,反正这位文青女导演还真不是)
张无B 1508 刘若英对着镜头唱一遍后来我都觉得比这片子感动。
葡萄猪不爱睡觉 1238 从形式内容到档期营销,统统都是模仿当年的致青春,致青春票房年度第二,这部最终估计也不会差
糖炒荔枝 1146 在我眼里第二个无问西东,投机取巧,毫无才华,对不起
尼克Lui 995 垃圾做作的电影 这么多年了还在不断的重复搞这种烂片 大晚上被抓住票房造假 哈哈哈哈哈哈 垃圾怎么包装也是垃圾!

ps:以上评论均来自豆瓣影评

3.总结

或许是主题曲提前预热了市场,让观众的期望值变高了,《后来的我们》在豆瓣上的评分只有6.2分,并且现在又出现了退票事件。
单就电影来说,感觉还是可以的。或许是豆瓣的用户眼光有点高了。

爱情有一种结局,是后来的我们,只能从情侣变成爱了很久的朋友。
电影有句很扎心的文案,“再后来,我什么都有了,却独独没有了我们”
希望我们好好珍惜。

转载于:https://www.cnblogs.com/paisenpython/p/10303826.html

爬取豆瓣评论之——后来的我们相关推荐

  1. BeautifulSoup及爬取豆瓣评论

    BS4的理解 BS4会将html文档对象转换为python可以识别的四种对象: Tag: 标签对象 NavigableString : 字符内容操作对象 BeautifulSoup: 文档对象 Com ...

  2. 实例:爬取豆瓣评论、绘制词云图以及情感分析——以《长津湖》为例

    一.爬取豆瓣<长津湖>网页评论 (由于存在一定的反爬机制,以下代码最多只能爬取210条评论) # 导入工具包 import requests from bs4 import Beautif ...

  3. python爬取豆瓣评论,并制作成词云

    一.爬取豆瓣热评 该程序进行爬取豆瓣热评,将爬取的评论(json文件)保存到与该python文件同一级目录下 注意需要下载这几个库:requests.lxml.json.time import req ...

  4. 爬取豆瓣评论连接mysql_Python3.5爬取豆瓣电视剧数据并且同步到mysql中

    #!/usr/local/bin/python#-*- coding: utf-8 -*-#Python: 3.5#Author: zhenghai.zhang@xxx.com#Program: 爬取 ...

  5. python爬取豆瓣短评_Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  6. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  7. 爬取豆瓣读书的图书信息和评论信息

    最近在做毕业设计,需要收集用户的评分数据做协同过滤算法,同时收集评论数据做情感分析 坑点 豆瓣图书可以没有评分,或者用户评论了但没给评分.而且豆瓣图书的编码方式很无奈呀,热门书籍附近总是冷门书籍,无评 ...

  8. python爬取评论_Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特

    ### 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件.然后对影评进行分词分析,使用词云生成树人格鲁特的形象照片. ### 2. 代码实现 此部 ...

  9. 朴素贝叶斯情感分析评分python_「豆瓣影评」从爬取豆瓣影评到基于朴素贝叶斯的电影评论情感分析(上) - seo实验室...

    豆瓣影评 一.爬取豆瓣影评 基本思路:先获取每个电影的评论区链接,然后依次进入其评论区爬取评论.选取10部电影,每部200条评论. 用到的包为:BeautifulSoup,urllib 这里选取的链接 ...

  10. 从爬取豆瓣影评到基于朴素贝叶斯的电影评论情感分析(上)

    一.爬取豆瓣影评 基本思路:先获取每个电影的评论区链接,然后依次进入其评论区爬取评论.选取10部电影,每部200条评论. 用到的包为:BeautifulSoup,urllib 这里选取的链接为:豆瓣电 ...

最新文章

  1. java的datatype_java数据类型
  2. CKEditor的安装与基本使用
  3. JSON支持什么对象/类型?
  4. Junit测试中找不到junit.framework.testcase
  5. 用hql查询的数据排序每次都不一样
  6. 计算机图形学基础考试题,计算机图形学基础复习题
  7. java学习笔记2022.1.17
  8. 为什么有了MAC层还要走IP层呢?
  9. 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少
  10. 个人理财助手2009 V2.4
  11. servlet——三兄弟的另外两个:过滤器/监听器
  12. 《spring-boot学习》-06-thymeleaf详解
  13. [编程之美]饮料供货
  14. JQuery EasyUI框架
  15. 初中英语和计算机融合的教学案例,信息技术与初中英语教学整合的教学设计.doc...
  16. 在JS中使用时间对象获取月份getMonth()时比实际的月份少一
  17. 桌面便签哪个软件好用?求推荐一款便签软件?
  18. 百万并发下的Nginx优化,看这一篇就够了!
  19. 马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...
  20. RAC生产数据库RMAN方式恢复到异地单机数据库全程记录

热门文章

  1. 51单片机--LED闪烁、流水灯的简单试验
  2. 计算机的音乐怎么按出来怎么办,音频管理器一直跳出来怎么处理啊
  3. 通过doi可以检索到文献_什么是DOI?如何获取文献的DOI?
  4. 欧姆龙r88d系列服务器说明书,欧姆龙R88D-KN10H-ECT-Z用户手册 - 广州凌控
  5. apache ab压测与参数传递
  6. 多路电源管理芯片(记录)
  7. 2021徐州市36中学高考成绩查询,关注!徐州四星级高中高考成绩公布!江苏13市高分学霸真颜曝光!...
  8. qpython3h_QPython3H安卓运行Python神器
  9. 【机器视觉】——平面测量实际尺寸(像素尺寸转物理尺寸)
  10. 第4章第20节:异形图表:使用子母饼图制作人员组成表 [PowerPoint精美幻灯片实战教程]