python爬取3万+条评论,解读猫眼评分9.5的《海王》是否值得一看?
程序员文章站
2022-05-11 08:03:55
海王 前言 2018年12月7日,本年度最后一部压轴大片《海王》如期上映,目前猫眼评分达到9.5分,靠着1.5亿美金的制作成本,以小博大,目前票房接近9亿,本文爬取了猫眼3w+条评论,多方位带你解读是否值得一看!!其实(yin)我(wei)也(mei)没(qian)看! 除了这个案例。我还会在裙里分 ......
前言
2018年12月7日,本年度最后一部压轴大片《海王》如期上映,目前猫眼评分达到9.5分,靠着1.5亿美金的制作成本,以小博大,目前票房接近9亿,本文爬取了猫眼3w+条评论,多方位带你解读是否值得一看!!其实(yin)我(wei)也(mei)没(qian)看!
除了这个案例。我还会在裙里分享各种有趣的python项目案例视频教程,有兴趣的可以来我的python学习免肥解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里还有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验等
数据爬取
现在猫眼电影网页似乎已经全部服务端渲染了,没有发现相应的评论接口,参考了之前其他文章中对于猫眼数据的爬取方法,找到了评论接口!
http://m.maoyan.com/mmdb/comments/movie/249342.json?v=yes&offset=15&starttime=2018-1208%2019%3a17%3a16%e3%80%82
接口有了,但是没有对应的电影id,不过这难不倒我们,使用猫眼app+charles,我们成功找到海王对应的电影id;
接下来爬取评论:
#获取数据 def get_data(url): headrs = { "user-agent": "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/51.0.2704.103 safari/537.36" } html = request(method='get',url=url,headers=headrs) if html.status_code == 200: return html.content else: return none
解析接口返回数据
#处理接口返回数据 def parse_data(html): json_data = json.loads(html,encoding='utf-8')['cmts'] comments = [] try: for item in json_data: comment = { 'nickname':item['nickname'], 'cityname':item['cityname'] if 'cityname' in item else '', 'content':item['content'].strip().replace('\n',''), 'score':item['score'], 'starttime': item['starttime'] } comments.append(comment) return comments except exception as e: print(e)
处理链接及存储数据
def change_url_and_save(): start_time = time.strftime('%y-%m-%d %h:%m:%s',time.localtime(time.time())).replace(' ','%20') end_time = '2018-12-07 00:00:00' while start_time > end_time: url = "http://m.maoyan.com/mmdb/comments/movie/249342.json?v=yes&offset=15&starttime="+start_time html = none try: html = get_data(url) except exception as e: time.sleep(0.5) html = get_data(url) else: time.sleep(0.1) comments = parse_data(html) start_time = comments[14]['starttime'] print(start_time) t = datetime.datetime.now() start_time = time.strptime(start_time,'%y-%m-%d %h:%m:%s') start_time = datetime.datetime.fromtimestamp(time.mktime(start_time))+datetime.timedelta(seconds=-1) start_time = time.mktime(start_time.timetuple()) start_time = time.strftime('%y-%m-%d %h:%m:%s',time.localtime(start_time)).replace(' ', '%20') for item in comments: print(item) with open('/users/mac/desktop/h5doc/h5learn/reptile/comments.txt', 'a', encoding='utf-8')as f: f.write(item['nickname'] + ',' + item['cityname'] + ',' + item['content'] + ',' + str(item['score']) +','+ item[ 'starttime'] + '\n')
最终我们获取到了大约33000条数据
数据分析
数据分析我们使用了百度的pyecharts、excel以及使用wordcloud生成词云
首先看一下,评论分布热力图:
京津冀、长三角、珠三角等在各种榜单长期霸榜单的区域,在热力图中,依然占据着重要地位。而新一线的川渝、郑州武汉紧随其后!
下面是评论数前20的城市
评论全国分布图:
由图中可以看出基本与热力图相似,主要分布在各大一线、新一线城市,对于杭州为何会排在第17的位置,我觉得可能是阿里大本营,大家都用淘票票的缘故吧!
上一篇: 7.NodeJS大示例