Python爬取数据《攀登者》《中国机长》《我和我的祖国》谁票房高

在今年国庆档即将上映的11部影片中,从猫眼想看人数、首日预售票房来看,《攀登者》、《中国机长》、《我和我的祖国》这三部影片最为火爆。

我们将使用Python抓取豆瓣平台上网友对三部电影的评论数据,并对获取到的数据进行分析,看看观众对这部电影的评价究竟如何?

由于三部电影都还没有正式上映,所以咱们爬取的是豆瓣上三部电影的网友的短评数据。

需要注意的是:一定要将cookies换成自己的登录信息,否则抓取一定页面后会被反爬虫机制检测。

代码如下:

import requests from lxml import etree import time import random headers = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-Encoding': 'gzip', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Cookie': '_ga=GA1.2.557027477.1504366471; _vwo_uuid_v2=938EB395FEDF0DA9E9D90650DE9042F0|e0a43720af285a1e9923074545b60ff1; gr_user_id=d044fe6a-3a16-4f08-ad14-cc71033b6767; __utmv=30149280.16469; douban-fav-remind=1; bid=uZG6zNr6IdM; __yadk_uid=l4ZlS88dSS6QGaomSBmqi5XqNAaUQv5r; viewed="21477429_24703171_24746415_10769749_3288908_5377669_2201479_27055214_30203973_1088812"; acw_tc=2760823015682940060847273e162d65a7cec22e493c6aa10f371b90c5086c; ll="118092"; trc_cookie_storage=taboola%2520global%253Auser-id%3Da1a11787-6229-4357-a25a-b869f8653388-tuctb0db9e; ap_v=0,6.0; __utmc=30149280; __utmc=223695111; dbcl2="164698173:AM/bSYaNPzk"; ck=oih5; push_doumail_num=0; push_noty_num=0; _ck_desktop_mode=; vmode=; _gid=GA1.2.2054464412.1568389839; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1568390107%2C%22https%3A%2F%2Fm.douban.com%2Fmovie%2Fsubject%2F1291843%2Fcomments%3Fsort%3Dnew_score%26start%3D50%22%5D; _pk_ses.100001.4cf6=*; __utma=30149280.557027477.1504366471.1568384207.1568390107.31; __utmb=30149280.0.10.1568390107; __utmz=30149280.1568390107.31.27.utmcsr=m.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/movie/subject/1291843/comments; __utma=223695111.557027477.1504366471.1568384207.1568390107.30; __utmb=223695111.0.10.1568390107; __utmz=223695111.1568390107.30.27.utmcsr=m.douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/movie/subject/1291843/comments; _pk_id.100001.4cf6=b6270075d3f0f249.1516866774.32.1568391082.1568386453.', 'Host': 'movie.douban.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'} if __name__ == '__main__': fp = open('./climbers.csv',mode='w',encoding='utf-8') fp.write('user\tcomment\tstar\tvote\tdate\n') url = 'https://movie.douban.com/subject/30413052/comments?start=%d&limit=20&sort=new_score&status=F' for i in range(0,100): if i == 25: url_comments = url%(490) else: url_comments = url%(i*20) response = requests.get(url=url_comments,headers = headers) response.encoding = 'utf-8' tree = etree.HTML(response.text) comments = tree.xpath('//div[@id="comments"]/div[@class="comment-item"]') for c in comments: user = c.xpath('.//div[@class="avatar"]/a/@title')[0] comment = c.xpath('.//span[@class="short"]/text()')[0].replace('\t', '') try: star = c.xpath('.//span[contains(@class,"allstar")]/@title')[0] except: star = 'none' t = c.xpath('.//span[@class="comment-time "]/@title')[0] votes = c.xpath('.//span[@class="votes"]/text()')[0] fp.write('%s\t%s\t%s\t%s\t%s\n'%(user,comment,star,votes,t)) print('第%d页数据保成功%d'%(i+1,len(comments))) time.sleep(random.uniform(1,15)) fp.close()

以《攀登者》为例,开始爬取数据~

在爬取了网友500条短评后,获得的关键词是非常多的,在这里咱们选取关键词出现最高的20个词,如下所示:

同样的方法,获取到《中国机长》和《我和我的祖国》的影评关键词如下:

《我和我的祖国》

《中国机长》

用结巴分词统计出现频率较高的词汇,生成词云图,直观感受一下网友关注度最高的关键词。

代码如下:

import pandas as pd import jieba from jieba import analyse import wordcloud import matplotlib.pyplot as plt from PIL import Image import numpy as np from matplotlib import font_manager if __name__ == '__main__': data = pd.read_csv('./climbers.csv',sep = '\t') texts = ';'.join([str(c) for c in data.comment.tolist()]) cut_text = ' '.join(jieba.cut(texts)) keywords = jieba.analyse.extract_tags(cut_text,topK=500,withWeight=True,allowPOS=['ns', 'n', 'vn', 'v','nr','a','e']) words = pd.DataFrame(keywords,columns = ['词语','重要性']) my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc") #关键字 plt.barh(range(0,20),width = words['重要性'][:20][::-1]) plt.ylabel('Importance') plt.yticks(range(0,20),labels=words['词语'][:20][::-1],fontproperties = my_font) plt.show() # 词云 hack_mask = np.array(Image.open('./hack.jpg')) text_cloud = dict(keywords) cloud = wordcloud.WordCloud(width=500,font_path='./simkai.ttf',height=333,background_color='white',mask = hack_mask,max_words=500,max_font_size=150) plt.figure(figsize=(12,12)) word_cloud = cloud.generate_from_frequencies(text_cloud) plt.imshow(word_cloud) plt.show()

电影《攀登者》影评词云图:

电影《中国机长》影评词云图:

电影《我和我的祖国》影评词云图:

大家对《攀登者》的焦点,多集中在吴京、胡歌等主要演员身上,其次是剧情和题材是大家比较期待的;

在《中国机长》的关键词中,出现了比较多的是机长和萨利(美国影片:萨利机长)。

说明大家对剧情能否还原当时的惊险场景还是比较期待的,并且美国的萨利机长也是一部比较成功的同类影片,相应粉丝也期待我国能拍出高质量的相关影片。

其次,大家比较关注的是演员,可以看出演员带来了不少的流量。

从《我和我的祖国》关键词可以看出,观影受众的焦点主要集中在剧情、爱国情感以及对七位名导演阵容的期待上,和靠小鲜肉吸引流量的电影形成了强烈对比。

喜欢冒险+剧情类型的电影,推荐观看《攀登者》,算是一部动作与激情的电影;

喜欢灾难+剧情类型的电影,推荐观看《中国机长》,这部电影题材更适合大众口味,而且由于是根据真实事件改编,所以会有很强的自我认同感;

喜欢剧情类+爱国题材类型的电影,推荐观看《我和我的祖国》,电影分为7个部分,条理更加清楚,而且能够对应每个时代的人,是一部大众电影。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:05月01日

热门专题

昆明综合高中|昆明综合高中
昆明综合高中
安徽中源管业有限公司|安徽中源管业有限公司,安徽中源管业有限公司介绍,安徽中源管业有限公司电话,安徽中源管业有限公司地址,安徽中源管业有限公司厂家,安徽中源管业有限公司电力管,安徽中源管业有限公司管材
安徽中源管业有限公司
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
昆明网站建设|昆明网站建设,昆明网站开发,昆明网站建设公司,昆明网站建设价格,昆明网站设计,昆明网站制作,网页设计,高端网站建设,高端网站设计
昆明网站建设
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部