说电影《悲伤逆流成河》

本文讲述了作者通过爬虫获取《悲伤逆流成河》在猫眼的影评数据,存储到MongoDB中,并使用数据可视化工具分析评论,包括词云、圆饼图和热力图,展示了大部分观众对该电影的积极评价。
摘要由CSDN通过智能技术生成

说电影《悲伤逆流成河》



前言

在这里插入图片描述

电影《悲伤逆流成河》上映已经半个月了,热度消散,为什么现在还要来说呢?基于两点:

  • 第一点:无聊,说说电影打发时间嘛;
  • 第二点:因为热度消散,无论哪一方的水军都会撤退,数据会更贴近真实。

当然了,第一点是真实原因,第二点在瞎掰。

接下来将分三个部分。第一部分爬取猫眼关于《悲伤逆流成河》的影评存储到MongoDB中,第二部分用爬取到的数据简单实现一下数据可视化,第三部分是对差评的点评。

爬取猫眼影评

事实上直接访问猫眼官网,点进《悲伤逆流成》,浏览器拉到最下就是影评了,问题是我只看到了热门影评,没有加载更多的提示。
在这里插入图片描述

这个时候转换策略,可以考虑移动端。但并非一定要用Fiddler等稍微麻烦的工具,有时候浏览器可以帮我们搞定一切。

右键->检查,点击左上角第二个图标
在这里插入图片描述

我选择模拟iPhoneX,100%显示。此时你也许需要刷新一下界面,看起来才会正常。
在这里插入图片描述

现在就可以查看全部短评了。跟以前的每一次爬虫流程一样,下拉界面,在Network中监测数据,找到了后台接口(http://m.maoyan.com/mmdb/comments/movie/1217236.json)

这个时候我们可以利用requets模块写一个小爬虫,看能否成功返回数据(当然是可以的,因为我已经尝试过了)。

整个过程没有什么难点,但有个意外之处。虽然猫眼说可以查看3.9万的短评,但实际上这个接口只对外公开了1000多条短评。当偏移量(offset)等于1000的时候尚有评论的数据返回,等于1001的时候返回{total: 0}。所以这里有一个需要注意的地方,猫眼每次加载会返回15条评论,偏移量从0开始,到1000结束,如果我们遍历range(0, 1000, 15)来获取offset,事实上是得不到offset=1000的。

我这里的处理方式是构造一个生成器(自然也可以用穷举的策略,但是那样很可能会浪费内存):

class Offset(object):
    """生成偏移量,使其能够包含边界数"""
    def __init__(self, left, right, step):
        self.left = left
        self.right = right
        self.step = step
        self.count = left

    def __iter__(self):
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值