今年的国庆档电影市场的表现还是比较强势的,两名主力《我和我的家乡》和《姜子牙》起到了很好的带头作用。
《姜子牙》首日破 2 亿,一举刷新由《哪吒之魔童降世》保持的中国影市动画电影首日票房纪录,但因其后续口碑下滑,目前已被《我和我的家乡》在口碑和票房上实现了全面的超越,如不出意外,《我和我的家乡》将会是今年国庆档的最大赢家。
从上图中我们可以看出《我和我的家乡》在猫眼上目前有 29.6 万人评分,总体评分 9.3,可以说是一个相当不错的成绩了,本文我们爬取该片的猫眼电影评论,一起分析下这部影片评论区的内容。
爬取
首先,我们来爬取猫眼电影评论数据,因 PC 端只能看到猫眼上的几条评论,所以我们要借助 APP 接口来爬取,接口格式为: http://m.maoyan.com/mmdb/comments/movie/movieid.json?_v_=yes&offset=15&startTime=xxx ,两个参数说明如下:
- movieid:网站中每部影片的唯一 id
- startTime:当前页面中第一条评论的时间,每页共有 15 条评论
爬取的主要实现代码如下:
# 获取页面内容 def get_page(url): headers = { 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit' '/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1', 'accept': '*/*' } try: r = requests.get(url, headers=headers) r.raise_for_status() return r.text except requests.HTTPError as e: print(e) except requests.RequestException as e: print(e) except: print("出错了") # 解析接口返回数据 def parse_data(html): json_data = json.loads(html)['cmts'] comments = [] # 解析数据并存入数组 try: for item in json_data: comment = [] comment.append(item['nickName']) # 昵称 comment.append(item['cityName'] if 'cityName' in item else '') # 城市 comment.append(item['content'].strip().replace('\n', '')) # 内容 comment.append(item['score']) # 星级 comment.append(item['startTime']) comment.append(item['time']) # 日期 comment.append(item['approve']) # 赞数 comment.append(item['reply']) # 回复数 if 'gender' in item: comment.append(item['gender']) # 性别 comments.append(comment) return comments except Exception as e: print(comment) print(e) # 保存数据,写入 csv def save_data(comments): file