据电影咨询,复联4的全球票房已超过《泰坦尼克号》,暂列影史票房第二,不过据我估计,复联4是非常有可能成为票房冠军的,我们拭目以待!
自己之前一直想做一次电影评论的爬虫,在自己看完这部电影之后,身为漫威迷的我觉得机会到了,于是开始搜寻资料,分析后有了上面那一片文章《Python爬取了134115条猫眼评论,老王带你看《复联4》!》
虽然爬取猫眼评论已不算是新鲜事,可以搜到网上的文章,但获取这13W的评论数据加上可视化分析并不是那么容易,踩过不少的坑,也学到了不少的东西,下面我们来一起看一下
数据获取
打开猫眼pc端网页,发现只能查看10条热评,直接切换至手机模式,点击查看全部评论,果然可以看到更多评论信息了。
我们输入“comments”进行筛选,向上滑动,便可出现关于评论的json文件,我们点击查看详情,可在Preview中查看json格式的评论信息,在Headers中便可获取到评论的数据接口。(这里ts值为时间戳)
http://m.maoyan.com/review/v2/comments.json?movieId=248172&userId=-1&offset=0&limit=15&ts=0&type=3
表面看上去可以直接更改offset值就可以获得更多数据了,爬取后发现offset到1000后,便再无数据返回,这说明这个方式只能获得1000条数据
于是开始google其解决方案,于是找到了下面这个数据接口。通过改变startTime的值来获取更多的评论信息,把offset设置为0,把每页评论数据中最后一次评论时间作为新的startTime去请求。
http://m.maoyan.com/mmdb/comments/movie/248172.json?_v_=yes&offset=0&startTime=2019-04-30%2021:27:11
没想到猫眼没有任何的反爬虫机制,爬了不到两个小时,爬出了134115条数据。数据包括用户昵称,用户地区,评论,评分以及评论时间。
注意在存入csv文件时,要加上”encoding=’utf_8_sig’”参数,这样打开csv文件就不会出现乱码了。
dataObject.to_csv(filename, mode='a', index=False, sep=',', header=False, encoding='utf_8_sig')
数据分析
pyecharts
可视化分析这里我们用的是百度开源的一个pyecharts包。它是一个用于生成Echarts图表的类库。用Echarts生成的图可视化效果非常棒,pyecharts是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。十分推荐!
安装
pip install pyecharts
==注意==
v0.5.X 和 V1.0.X 间完全不兼容,我在这里因为版本的问题耽误了不少时间。得出结论就是一定要看看官方文档 github-pyecharts ,直接就可解决。
# 安装 1.0.x 以上版本 (仅支持Python3.6+)
$ pip install pyecharts -U
# 如果需要安装 0.5.11 版本的开发者 (支持Python2.7,3.4+)
# pip install pyecharts==0.5.11
地图包
地图文件被分成了三个 Python 包,分别为:
全球国家地图: echarts-countries-pypkg
中国省级地图: echarts-china-provinces-pypkg
中国市级地图: echarts-china-cities-pypkg
pip install pyecharts-jupyter-installer==0.0.3 #必须先执行这个,否则安装会报错
直接使用python的pip安装:
全球国家地图:pip install echarts-countries-pypkg
中国省级地图:pip install echarts-china-provinces-pypkg
中国市级地图:pip install echarts-china-cities-pypkg
中国县区级地图: echarts-china-counties-pypkg
词云
直接使用得jieba包,不要忘了自定义停用词。
以上就是整个的爬取分析过程,如果大家想爬取其他电影的信息,直接替换代码中的id即可。
代码获取地址:https://github.com/AkaOld/MaoYan-MovieComments