爬取豆瓣评论之——后来的我们

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

1.抓数据

通过试探知道:豆瓣影评设置权限,没有登陆的话,只能够看到前面的几十条短评,并且登录的时候需要输入验证码。所以考虑使用selenium来获取数据。

登录时需要的验证码,通过保存图片,然后手动输入

加群923414804免费获取数十套PDF资料,助力python学习

所以构造两个方法

# 登录

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


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

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

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

# 搜索电影

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('成功存入数据库')


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

#翻页

def next_page():

    next = brower.find_element_by_css_selector('[class="next"]')

    try:

        next.click()

    except:

        logging.info("全部完成了")

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

#使用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.数据处理

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

series =[

    {

    'name':'评论点赞数',

    'data':[i for i in vote_list],

    'type':'column'

    }

]

charts.plot(series,show='inline',options=dict(title=dict(text='评论点赞数')))

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

咳咳。。。前排很重要呀

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

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晚所爬取的

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

昵称获赞数短评

Magic2475台词矫情的令人发指!

华盛顿樱桃树2230最好的是演员,周冬雨完全开辟出自己的戏路。小井进步惊人,已长出美丽。最差的是编剧,没有一场完全连贯的戏,几乎都是攒的。

痴痴的钟灵1784希望奶茶好好演戏唱歌,矫情的青春片已经没有市场了。吃完瓜回来,劝眼善良,中国的电影市场要被你们搞的烂透了。在工作日首日票房近3亿,把自己当妇联了么,【把没有市场收回,有,眼在何愁没有100亿.

昵称过期作废1785毫无看点可言。剧情处处是硬伤!这是电影吗?这是PPT,刘小姐,还是回去唱歌吧。

末药煎肉塔1601现在还把北京设定为梦想之城的,大概受众也是瞄准了小镇青年吧(多次冲北京喊话真是挺尴尬的)。剧情拖太长,唯一的泪点还是田壮壮演的老爸,周冬雨老演这种角色不会腻吗?

xiaoning1373真的很讨厌卖情怀的电影,而且还有一个不是很有才华的歌手做导演,要不是主题曲我应该都不会想看。(留言说我收钱黑的,老子收了一分黑钱我多的钱都亏出去行了吧,就这尴尬的台词乱拼凑的故事是在看ppt吗还用收钱黑,我真是谢你们大爷了,你不用管我觉得谁有才华,反正这位文青女导演还真不是)

张无B1508刘若英对着镜头唱一遍后来我都觉得比这片子感动。

葡萄猪不爱睡觉1238从形式内容到档期营销,统统都是模仿当年的致青春,致青春票房年度第二,这部最终估计也不会差

糖炒荔枝1146在我眼里第二个无问西东,投机取巧,毫无才华,对不起

尼克Lui995垃圾做作的电影 这么多年了还在不断的重复搞这种烂片 大晚上被抓住票房造假 哈哈哈哈哈哈 垃圾怎么包装也是垃圾!

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

3.总结

或许是主题曲提前预热了市场,让观众的期望值变高了,《后来的我们》在豆瓣上的评分只有6.2分,并且现在又出现了退票事件。

单就电影来说,感觉还是可以的。或许是豆瓣的用户眼光有点高了。

爱情有一种结局,是后来的我们,只能从情侣变成爱了很久的朋友。

电影有句很扎心的文案,“再后来,我什么都有了,却独独没有了我们”

希望我们好好珍惜。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容