前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: Yura不说数据说 ,PYuraL

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

数据爬取

其实我一开始是想用豆瓣网的评论的,但是我翻了翻吧,发现“最热评论”只能看到500条,“最新评论”只能显示100条,拿600条数据能分析出个啥?

百度了一下,看大家都是用猫眼评论,于是就……爬猫眼!网页版的猫眼只能显示有限的评论,切换到APP版本才能看到所有评论。

找network里面的网页也不难,随便拿一条评论搜索一下就可以找到

关键是找到不同网页之间的变化规律

有些网址,表面看上去,区别就是在于offset(偏移量),但是实际上更改这个数值到1005的时候就爬不到东西了(可能是由于网页内部的设置吧),就是说这么下去我们只能得到1000条评论。

那是哪1000条评论呢?我们看到网址中有个关键词“ts=1549640420581”,其实就是当前时间的意思(时间戳),转化一下就是:

所以1000条就是从这个时间点,往前偏移15条后,最新的1000条评论。

通过百度各位大神的爬虫过程,我发现终极解决方法就是更改ts的值!如果说偏移量15的意思是从这个查询的时间往前偏移15条再取得15条评论数据(limit=15),那么我们每次更改ts值不就可以了。

第一个ts值是程序开始运行的时间,第二个值就从已经获取的评论数据中拿到最早的那个数据,以此不断往前翻滚……

我爬取了2月8日24点之前的所有评论信息,按App显示此时至少有80000+条数据,但是我爬下来总共只有4w+条…数据缺失还是比较严重的。

数据格式如下(包括用户id、用户昵称、用户猫眼等级、性别、时间、评分、评论内容、点赞数和评论数):

这些都是在json里面,格式非常清晰明了。

数据清洗

拿到数据除了做词云用了Python(代码在最后),其他的内容Excel分分钟解决,这里尤其感谢发明“数据透视表”的兄弟。

数据分析

1.观众信息

男女比例各占一半,男的对赛车这类刺激性东西感兴趣可以理解,这女观众都是为了啥?为了黄景瑜小哥哥的脸?还是像我一样冲着阿信来的?这里信息太少,我只做少量胡思乱猜。

用户等级又是类似于正态分布的形状,巧的嘞……其中0分和1分的用户(可以认定为新注册用户)仅占9.78%,可以看出评分的人中水军是很少的,基本都是猫眼老用户。

再看看4天用户评价数量的变化:

基本可得这部电影热度呈现缓慢下降的趋势(但是由于数据的不完整性,不能绝对说明)

那用户都喜欢在什么时间评论呢?对比看四天的评论hour数据:

如果大家习惯看完电影马上评价的话,那么从评论趋势来看,从中午12点之后评论数逐渐增加,推测是由于早上10点左右那场电影的结束。随后评论数不断增加,在晚饭前的5、6点和睡觉前的23点左右达到小高峰。

嗯,非常符合大家“醒了看电影,看完吃饭,吃了再看,看了再睡‘的“节假日生活作息”。

2.评分情况

按照我爬取的数据我们看到超过一半(52.37%)的观众给这部电影打了满分10分,极少量用户评分在6分以下(仅占7.58%)。根据我爬取的数据,计算所得平均分是8.725,和实时显示的分数8.8相差不大。

除了从宏观角度看评分,我们来瞧瞧评论者性别和评论时间与最终评分有什么不能说的秘密?

性别的不同并没有造成评分很大的区别,男观众和女观众的评分平均分仅仅相差0.35分,“未知性别”人群的评分在两者之间,基本等于男性评分8.53和女性评分8.88的的平均值(8.71)。嗯,我很有理由怀疑“未知人群”中男女比例也各占一半!

从评分时间和评分的关系来看,低分一般出现在0点到7点之间,我猜吧,大概是在这种夜深人静的时候,大家的情绪容易有大起大落,白天看完电影时的兴奋已经退去,留下的只有深深的思考,或许还带点批判性,吧。

3.评论内容

先看看点赞数最高的5条评论。

我们发现前5条评论评分均为10分:其中第一条,emmm,与电影无关,暂时跳过……其他几条都是赞美韩寒、沈腾和黄景瑜的。

那通过词云具体看一下评论内容:

不成熟的代码

from bs4 import BeautifulSoupimport requestsimport warningsimport refrom datetime import datetimeimport jsoheaders = { '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', 'Connection':'keep-alive'}cookies={'cookie':'_lxsdk_cuid=168c325f322c8-0156d0257eb33d-10326653-13c680-168c325f323c8; uuid_n_v=v1; iuuid=30E9F9E02A1911E9947B6716B6E91453A6754AA9248F40F39FBA1FD0A2AD9B42; webp=true; ci=191%2C%E5%8F%B0%E5%B7%9E; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; __mta=49658649.1549462270794.1549465778684.1549548206227.3; _lxsdk=30E9F9E02A1911E9947B6716B6E91453A6754AA9248F40F39FBA1FD0A2AD9B42; _lxsdk_s=168c898414e-035-f0e-e6%7C%7C463'}​#url设置offset偏移量为0url = 'http://m.maoyan.com/review/v2/comments.json?movieId=1218091&userId=-1&offset=0&limit=15&ts={}&type=3'​comment=[]nick=[]score=[]comment_time=[]gender=[]userlevel=[]userid=[]upcount=[]replycount=[]ji=1​​url_time=url_time=int(time.time())*1000#获取当前时间(单位是毫秒,所以要✖️1000)​for i in range(2000): value=15*i url_range=url.format(url_time) res=requests.get(url_range,headers=headers,cookies=cookies,timeout=10) res.encoding='utf-8' print('正在爬取第'+str(ji)+'页') content=json.loads(res.text,encoding='utf-8') list_=content['data']['comments'] count=0 for item in list_: comment.append(item['content']) nick.append(item['nick']) score.append(item['score'])  comment_time.append(datetime.datetime.fromtimestamp(int(item['time']/1000))) gender.append(item['gender']) userlevel.append(item['userLevel']) userid.append(item['userId']) upcount.append(item['upCount']) replycount.append(item['replyCount']) count=count+1 if count==15: url_time=item['time'] ji+=1 time.sleep(random.random())print('爬取完成')print(url_time)result={'用户id':userid,'用户昵称':nick,'用户等级':userlevel,'性别':gender,'时间':comment_time,'评分':score,'评论内容':comment,'点赞':upcount,'评论':replycount}results=pd.DataFrame(result)results.info()results.to_excel('猫眼_飞驰人生.xlsx')

按15分钟取数据_Python爬取猫眼电影《飞驰人生》4万多条评论并对其进行数据分析...相关推荐

  1. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  2. python爬取天气数据_Python爬取历史天气数据

    Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...

  3. 网页视频15分钟自动暂停_在15分钟内学习网页爬取

    网页视频15分钟自动暂停 什么是网页抓取? (What is Web Scraping?) Web scraping, also known as web data extraction, is th ...

  4. python爬取地理数据_python爬取所有人位置信息——腾讯位置大数据

    腾讯位置大数据 网站 https://heat.qq.com/ 网站功能介绍 腾讯位置大数据会将提供所有用户使用腾讯位置的数据信息,但没有用户信息(只有位置信息).从这个网站我们可以获取所有使用腾讯位 ...

  5. python爬取论文全文数据_Python爬取微信公众号历史文章进行数据分析

    思路: 1. 安装代理AnProxy,在手机端安装CA证书,启动代理,设置手机代理: 2. 获取目标微信公众号的__biz; 3. 进入微信公众号的历史页面: 4. 使用Monkeyrunner控制滑 ...

  6. python 行情数据_python爬取期权行情数据

    想要弄点数据要求高的可以找收费的数据服务商,例如wind,东方财富,后者便宜点,tushare也提供了期权行情数据,但是门槛是有积分限制,其他的地方只能爬取了.做期权策略分析没有数据怎么行,没钱就写一 ...

  7. python获取游戏数据_Python 爬取 3 万条游戏评分数据,原来程序员最爱玩的游戏竟然是.........

    原标题:Python 爬取 3 万条游戏评分数据,原来程序员最爱玩的游戏竟然是...... 作者 |量化小白H 责编 | 胡巍巍 本文爬取了豆瓣游戏网站上所有可见的游戏评分数据进行分析,全文包括以下几 ...

  8. python爬取大众点评数据_Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!...

    作者 | 胡萝卜酱 责编 | 伍杏玲 成都到处都是火锅店,有名的店,稍微去晚一点,排队都要排好久,没听说的店,又怕味道不好. 那么如何选择火锅店呢?最简单的肯定是在美团.大众点评上找一找啊.所以,本文 ...

  9. python抓取招聘数据_Python爬取招聘网站数据并做数据可视化处理

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于青灯编程 ,作者:清风 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有 ...

最新文章

  1. python冒号错误-python冒号错误语法无效
  2. 鸿蒙开发-从搭建todolist待办事项来学习组件与js之间的交互
  3. UriComponentsBuilder 拼接URL、解析URL
  4. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)
  5. 关于python语言数值操作符、以下选项错误的是 答案是_关于Python注释,以下选项中描述错误的是...
  6. ES6-6 - this指向、箭头函数基本形式、rest运算符
  7. python用户输入若干个分数_编写一个程序,要求用户输入五个测试分数。与字母grad对应...
  8. 怎样把间隔的几个commit整理成1个呢?
  9. html window 属性,html中window对象top 、self 、parent 等属性
  10. 问题六十三:怎么用ray tracing画sphere sweeping图形
  11. 面试记录:题都没答就走了
  12. 截取网页中的Flash
  13. 华为发布八核处理器Kirin 920
  14. 世唐科技:秒懂什么是区块链
  15. Gif录制工具Gyazo 官方版
  16. 罗德里格斯旋转公式(Rodrigues‘ rotation formula)推导
  17. vue按照字母表排序
  18. App一键切换url环境、一键打包__Android拓展篇(Java)
  19. 计算机控制总端,楼宇计算机控制系统(DCS)
  20. velcoity使用说明:foreach指令

热门文章

  1. 整数线性规划实现(lingo,python分枝界定法)
  2. python2与python3,Python2和Python3的10大区别
  3. 【OpenCV 例程200篇】96. 谐波平均滤波器
  4. 【OpenCV 例程200篇】93. 噪声模型的直方图
  5. pcl从一个点云里面导出下标
  6. java 线程安全问题_java线程安全问题原因及解决办法
  7. android ui stencil kit 下载,实用的iOS6/iPhone5 GUI/iPad PSD以及其它版本素材
  8. python3.8.2中文手册chm_3.2.2中文语法考察
  9. python多线程之线程锁(Lock)和递归锁(RLock)实例
  10. 详述白盒测试的逻辑覆盖的条件覆盖及其优缺点