我自己到现在其实还没看这部电影,毕竟这电影这么火,电影院现在都很难买到好的位置。所以我打算不如先看看大家是怎么评价这部电影的,然后就开始写爬虫吧。
获得这 16w 评论数据的过程并没有那么顺利,对猫眼评论数据接口的分析踩过不少的坑,最终也是参考了网上其他文章得以解决,下面我们一起来分析下。
打开猫眼 pc 网页,发现只有 10 条热门评论数据,果断将浏览器切换成手机模式。果然在手机模式下就可以看到更多评论信息了,往上滑动终于可以看到接口请求数据了,那么把接口拿出来看看吧。
#只能获取1000条数据接口
http://m.maoyan.com/review/v2/comments.json?movieId=248906&userId=-1&offset=15&limit=15&ts=1550381347469&type=3
表面上看好像只需通过 offset 这个参数就能控制翻页来获取更多数据了,于是简单试了几个参数发现还真可以。
于是开始写爬虫程序,写完运行程序发现 offset 只能到 1000,再往后就没有数据返回了,因此意味着这个方式只能获取 1000 条数据。
身为老司机,还是得分享些干货精品学习资料的,推荐下小编创建的Python学习交流群556370268,这里都是一群爱好Python的小伙伴,每天还会直播和大家交流分享经验哦。
我开始到网上去寻找其他答案,发现有人在用另外一个接口,思路大概是按日期来查询,然后对每天的数据再做分页获取,看上去还不错,就是下面这个接口。
#每天1000条数据接口
http://m.maoyan.com/mmdb/comments/movie/248906.json?_v_=yes&offset=15&startTime=2019-02-05%2022%3A25%3A03'
这个接口确实可以拿到更多的数据,但是跟上面那个接口一样,同样是每天只能获取 1000 条数据,即从上线到今天最多也只能拿到不到 2w 的数据,这个数据量有点少,看看还有没有其他办法。
后来又到网上找到另一个接口,可以通过改变 startTime 字段的值来获取更多评论信息,把 offset 置为 0,把每页评论数据中最后一次评论时间作为新的 startTime 去重新请求即可。
#靠谱接口
http://m.maoyan.com/mmdb/comments/movie/248906.json?_v_=yes&offset=0&startTime=2019-02-05%2020:28:22
在爬虫过程中意外的发现,猫眼对接口没有做反爬限制,一口气爬了 16w评论数据。数据包含用户昵称、用户所在地、评分、评论内容以及评论时间五项内容。
我简单看了下数据,90% 都是好评,评分大多数都是满分,评论中出现很多的不错、好看、很棒、很好的词,真是不愧能在短时间内拿下这么高的票房。
网友评论