前言

最近,最火的电视剧莫过于《大秦赋了》,自12月1日开播后,收获了不错的口碑。然而随着电视剧的跟新,该剧在网上引起了激烈的讨论,不仅口碑急剧下滑,颇有高开低走的趋势,同时该剧的评分也由最初的8.9分,下降到了现在的6.5分。

虽然我还没有看过这个新剧,但是对于小伙伴们讨论的内容,却颇有兴趣(主要还是大家老是讨论这个剧)。因此,我用Python爬取了《大秦赋》的相关数据,进行了一波分析。

代码及数据获取

本文完整代码和数据,大家关注公众号:数据分析与统计学之美,回复:大秦赋,获取!

数据爬取

巧妇难为无米之炊,做数据分析之前最重要的就是“数据获取”。于是,我准备用Python爬取豆瓣上的短评数据以及一些评论时间信息、评价星级信息。

关于数据的爬取主要说以下几个内容:

1)关于翻页操作
第一页:
https://movie.douban.com/subject/26413293/comments?status=P
第二页:
https://movie.douban.com/subject/26413293/comments?start=20&limit=20&status=P&sort=new_score
第三页:
https://movie.douban.com/subject/26413293/comments?start=40&limit=20&status=P&sort=new_score

上面我们分别展示了第1-3页的页面链接,我们主要是观察其中的规律,其中start是获取评论的起始位置,limit代表获取多少条评论数据。观察结果:3个链接的不同在于这个start的不同,在后续翻页时,我们只需要修改start参数即可。

2)关于反扒说明

对于豆瓣的爬取,其实找到真实的短评链接,是极其容易的。但是这里有一点我必须说明,你可以不登陆爬取数据,但是只能是操作一段时间,过一段时间,会检测到你是爬虫。因此,你一定要登陆后,携带cookie去进行数据的爬取。如果你有时候不知道请求头中,该放一些什么,那么就请都加上,等有空再慢慢总结。

 headers = {"Accept":"application/json, text/plain, */*","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive","Host":"movie.douban.com","User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',"Cookie":'这里是你自己的cookie'}

cookie有些人可能又不知道在哪里,还是告诉你一下吧!好多参数都在下面呢,如果你想学好爬虫,那么这些参数代表什么,你总应该需要知道吧。

最终再补充一点:我本来打算把豆瓣上的《大秦赋》短评,全部爬下来作为分析的素材。然而并没有成功爬取到所有的短评,一波三折,最终只爬到了500条,当然我觉得这也是豆瓣的一种反扒措施,最大可见短评数就500条,多的不给你看。(有大神的话,可以下去研究一下)

数据处理

爬取后的数据,再怎么规整,也和用于分析的数据之间,有一定的差距。因此再分析之前,一定的数据清洗是很有必要的。在数据清洗之前,我们简单看看数据是什么样子的。

df = pd.read_csv("final_all_comment.csv",index_col=0)
df.head(10)

结果如下:
其实数据还是挺漂亮的,但是我们还是需要做如下处理:

1)剔除重复值

我们认为:如果’评论时间’和’评论内容’完全一致的话,就认为他是同一条评论,需要将其剔除。

print("删除之前的记录数:",df.shape)
df.drop_duplicates(subset=['评论时间','评论内容'],inplace=True,keep='first')
print("删除之前的记录数:",df.shape)
2)评论时间处理

因为《大秦赋》是2020年12月1号开播的,现在是12月16号晚,因此所有的评论数据肯定都是2020年12月开始有的,因此我们只保留有用的“日期”数据(哪一天)。而对于时分秒来说,我们只保留“小时”数据。

df["评论天数"] = df["评论时间"].str[8:-9].astype(int)
df["小时"] = df["评论时间"].str[11:-6].astype(int)
3)评论星级说明

观察原页面的评论星级,可以看到所有的星级并不是以数字展示的,而是用星星进行前端渲染出来的,但是页面的源代码,却展示的是星级数。

对应到页面源代码中,我们看看又是怎么样子的呢?

可以看到:3星的数字是30,其它的以此类推,1星的数字是10,2星的数字是20…我看着就是很不爽,因此我在爬取数据的时候,已经将这些数字,全都除以10后计算。

4)评论内容机械压缩去重

对于一条评论来说,有些人可能手误,或者凑字数,会出现将某个字或者词语,重复说多次,因此在进行分词之前,需要做“机械压缩去重”操作。下面是我很早之前写的一段代码,大家可以去看我的CSDN博客,里面有很好的解释。

def func(st):for i in range(1,int(len(st)/2)+1):for j in range(len(st)):if st[j:j+i] == st[j+i:j+2*i]:k = j + iwhile st[k:k+i] == st[k+i:k+2*i] and k<len(st):   k = k + ist = st[:j] + st[k:]    return stst = "我爱你我爱你我爱你好你好你好哈哈哈哈哈"
func(st)

结果如下:

利用上述函数,我们可以对爬取到的数据,应用此操作。

def func(st):for i in range(1,int(len(st)/2)+1):for j in range(len(st)):if st[j:j+i] == st[j+i:j+2*i]:k = j + iwhile st[k:k+i] == st[k+i:k+2*i] and k<len(st):   k = k + ist = st[:j] + st[k:]    return stdf["评论内容"] = df["评论内容"].apply(func)

数据可视化操作

俗话说:“字不如表,表不如图”。爬取到的数据,最终做可视化的呈现,才能够让大家对数据背后的规律,有一个清晰的认识。下面我们从以下几个方面来进行数据可视化分析。

  1. 评论数随时间的变化趋势
  2. 二十四小时内的评论数的变化趋势
  3. 星级评分的饼图
  4. 大家主要都在评论一些啥

关于数据可视化工具,我就不用pyecharts了,我还是回归原始,用最原始的matplotlib库进行数据可视化的展示。毕竟我们没有什么复杂的展示,代码越简短越好。

1)评论数随时间的变化趋势

从图中可以看出:短评数量在12月4日之前,一直处于上升趋势,在12月4日达到顶峰。和文章最开始的说明一致,前面几天观众对于该剧的期待值较高,但是在12月4日后,突然出现断崖式下降,说明随着该剧的更新,大家有所失望了。

2)二十四小时内的评论数的变化趋势

最近总听到周围有人在讨论这部剧,下面就来看看大家都是在啥时候追剧呢?从24小时图中可以看出:晚上7-24点,评论急剧上升,大多数人都是6点下班,可能吃个饭到7点左右,或者直接在下班过程中,就开始了一天的追剧。这里还有一波早高峰5-8点,难道睡不着?早上还要起来刷刷据,然后上班。这里还有两个时间段:上午10-11点,中午12-15点,大家可以分析下,肯定有相当一部分小伙伴,正在摸鱼工作呀

《大秦赋》最近有点火!于是我用Python抓取了“相关数据”,发现了这些秘密......相关推荐

  1. 《大秦赋》最近很火?用Python抓取了“相关数据”,发现了这些秘密......

    大家好,我是小五???? 最近,最火的电视剧莫过于<大秦赋>了,自12月1日开播后,收获了不错的口碑.然而随着电视剧的跟新,该剧在网上引起了激烈的讨论,不仅口碑急剧下滑,颇有高开低走的趋势 ...

  2. 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密............

    前言 最近,最火的电视剧莫过于<大秦赋了>,自12月1日开播后,收获了不错的口碑.然而随着电视剧的跟新,该剧在网上引起了激烈的讨论,不仅口碑急剧下滑,颇有高开低走的趋势,同时该剧的评分也由 ...

  3. 《大秦赋》最近有点火!于是我用Python抓取了“相关数据”,发现了这些秘密.........

    此文转载自:https://blog.csdn.net/weixin_41261833/article/details/111546033 前言 最近,最火的电视剧莫过于<大秦赋了>,自1 ...

  4. 《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 简说Python分享来源:数据分析与统计学之美 作者:黄伟呢One old watch, li ...

  5. 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...

    微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友 ...

  6. html2canvas截图地图和看到的不一样_大秦赋,我看到的不一样的赢异人。

    1 大秦赋的赢异人真的是颠覆了以往看过的赢异人的电视剧. 毕竟以往看过的电视剧的赢异人,都是纵情美色,胆小懦弱,贪生怕死. 可是大秦赋的赢异人真的是重情重义,胆色过人,为成大事不拘小节,不惧生死. 2 ...

  7. 通过Python分析《大秦赋》,我知道了这些

    前言 对于<大秦赋>,相信大家都不会陌生,由延艺导演,张鲁一主演的历史古装剧. 剧集讲述了秦始皇嬴政在吕不韦.李斯.王翦等的辅佐下平灭六国.一统天下,建立起中华历史上第一个大一统的中央集权 ...

  8. 最近最火的《大秦赋》,用Python抓取相关数据,发现了秘密

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于数据分析与统计学之美 ,作者黄伟呢 Python 数据分析入门案例讲解 https: ...

  9. 《大秦赋》从8.9降到5.8!爬取数据后,发现这些秘密......

    最近,最火的电视剧莫过于<大秦赋了>,自月初开播后,收获了不错的口碑.然而随着电视剧的跟新,该剧在网上引起了激烈的讨论,不仅口碑急剧下滑,颇有高开低走的趋势,同时该剧的评分也由最初的8.9 ...

最新文章

  1. 【iOS_Development】文件操作
  2. python RSA 加密与签名
  3. MAC安装vmware虚拟机,安装window xp Ghost步骤
  4. JS中自定义replace可替换特殊符号$等,但无法忽略大小写的函数
  5. python字典值求和_python 合并字典,相同 key 的 value 如何相加?
  6. 牛客网(剑指offer) 第三题 输入一个链表,从尾到头打印链表每个节点的值。
  7. python字符串的冒泡排序_如何实现python冒泡排序算法?
  8. Leet Code OJ 136. Single Number [Difficulty: Medium]
  9. sentinel 端口_双剑合璧Nacos结合Sentinel实现流量安全控制(一):Sentinel核心库和控制台...
  10. Django module学习之模板
  11. 告别10年代,这几款手机应用改变了数亿中国人的生活,你一定在用!
  12. 嵌入式Linux要学哪些东西?你真的造吗
  13. 【论文笔记】基于交易的以太坊智能合约分类检测方法
  14. 判断无线网卡是否支持监听模式
  15. springboot用jar方式调试,用war方式部署到tomcat
  16. 【Vmware】打开虚拟机时提示“无法连接虚拟设备,因为主机上没有响应的设备”
  17. “压缩(zipped)文件夹“G:\Program\Wechat WeChatFiles(wxid cqpx72n77z9x22 FileStorage\File 2022-12 基...
  18. 《博弈心理学》-占据主动的策略思维
  19. Java学习之旅-04
  20. 【游戏开发】按键精灵写《新天龙八部》脚本——人物自动打怪加血加蓝宠物加血

热门文章

  1. SpringBoot集成Dubbo框架
  2. 使用nat123实现外网访问局域网中的linux主机
  3. 网易新闻爬虫实战笔记[news.163.com]
  4. Debian系统下Aria2+AriaNg+h5ai实现离线下载与在线播放
  5. python打开exe文件并传递信息_打开一个.exe文件并用Python为其提供输入参数
  6. python报错AttributeError module ‘scipy.misc‘ has no attribute ‘imresize‘和 ‘imread‘
  7. 企业微信会话存档-一个文件下载,吹牛2小时完成,结果写了2星期?
  8. uni-app发行微信小程序失败
  9. 餐饮二维码案例: 扫二维码监督后厨卫生状况
  10. DirectD3D-纹理映射