专栏首页北京马哥教育使用爬虫抓取网易云音乐热门评论生成好玩的词云

使用爬虫抓取网易云音乐热门评论生成好玩的词云

作者:纯臻 来源: http://blog.csdn.net/marksinoberg/article/details/70809830

互联网爬虫是一个很有意思的技术,借由爬虫,我们可以做到很多好玩的事情——这其中就包括爬取评论。

词云就是个更好玩的技术,通过技术方法分析词语出现频率,生成可视化的图形,将文字内容用图形呈现,想想就很意思。

这次,我们就试着把这两个技术结合起来吧。

前言

网易云音乐一直是我向往的“神坛“,听音乐看到走心的评论的那一刻,高山流水。于是今天来抓取一下歌曲的热门评论。并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么。

做成词云的好处就是直观以及美观, 其他的我也想不出来有什么了。

抓数据

要想做成词云,首先得有数据才行。于是需要一点点的爬虫技巧。

  • 抓包分析
  • 加密信息处理
  • 抓取热门评论内容

01

抓包分析

使用Chrome控制台。我们可以轻松的找到评论所在的链接。如下图:

现在URL算是找到了,下一步就是进行数据抓取了。但是简单尝试了一下,发现并不能获取到详细的信息,而是返回了空空的字符串。 再次查看hreaders的信息,发现浏览器使用的是POST的方式进行的请求。具体字段如下图:

02

加密信息处理

然后经过我的测试,直接把浏览器上这俩数据拿过来就可以。但是要想真正的解决这个加密处理,还需要有点加解密的只是存储。GitHub上有大牛分析了网易云音乐的字段加密的详情。有兴趣的可以搜索一下下面的文章参考一下。

网易云音乐新登录API分析

这里我就使用这么个临时的方法好了,而且对于不同的歌曲是可以重用的。待会我们可以验证一下。

03

抓取热门评论内容

从第一步拿到了接口,而返回的数据就是一个JSON字符串,获取一下稍作处理即可使用。

看下运行的结果吧。

词云

词云我使用的一个第三方库Wordcloud,可以使用pip进行安装。官网上有非常详细而且清晰的案例可供参考,这里就不重复的描述了。有兴趣的参考下面的链接。 https://amueller.github.io/word_cloud/auto_examples/index.html

下面就直接上代码好了。

但是官网也好,其他地方也罢,都没有说对于中文的处理。然后我找啊找啊的,终于找到了解决办法,那就是在WordCloud的构造方法上指定字体文件的路径。这样就可以解决中文乱码的问题了。具体设置如下:

WordCloud(random_state=1, font_path = r’C:/Users/Windows/fonts/simkai.ttf’)

01

词云运行效果

最后来对比一下运行的效果。

总结

来回顾一下,文章针对网易云音乐的热门评论做了爬取,并通过词云生成器制作出了相对应的词云。

可以拓展的地方:

  • 词云mask,支持特定背景的词云生成
  • 热门评论批量爬取,只需要获取对应歌曲的ID即可。
  • 封装起来,提取接口,对外界提供热评服务,或者词云生成服务。
  • … …

最后,网易真的是国内互联网的现象级产品——似乎所有的网易产品都天生自带神评论的属性。

看了这篇文章,建议大家可以自己动手实践一下,如果操作过程出现什么问题,也可以在评论区留言交流哦~

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:纯臻

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关闭 Tomcat 的 TLD 扫描的功能 Jan 21st, 2014 | Comments

    Tomcat 作为 Servlet 规范的实现者,它在应用启动的时候会扫描 Jar 包里面的 .tld 文件,加载里面定义的标签库,但是,我们在开发的时候很多都...

    小小科
  • windows环境下使用virtualenv对python进行多版本隔离

    最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python...

    小小科
  • windows环境下使用virtualenv对python进行多版本隔离

    最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python2...

    小小科
  • python词云生成-wordcloud库

    全文转载于'https://www.cnblogs.com/nickchen121/p/11208274.html#autoid-0-0-0'

    小小咸鱼YwY
  • 从传统运维到云运维演进历程之软件定义存储(五)下

    上篇文章讲到了Ceph在灾备方面有三大神兵利器:故障域、RBD异地灾备、RGW异地灾备。那么本文讲述下剩下的两大利器RBD异地灾备和RGW异地灾备

    DevinGeng
  • JS魔法堂:彻底理解0.1 + 0.2 === 0.30000000000000004的背后

    Brief                                 一天有个朋友问我“JS中计算0.7 * 180怎么会等于125.9999999999...

    ^_^肥仔John
  • 深度剖析开源分布式监控CAT

    CAT(Central Application Tracking)是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,基本接入了美团点评上海侧所有核心...

    美团技术团队
  • “618”大促落下帷幕,我们守住了2.7亿张优惠券

    2019年“618大促”告一段落。作为上半年规模最大的促销活动,各大电商平台给出了最大的优惠力度,成绩也都再创新高。

    腾讯云安全
  • 数据库锁

    宇宙之一粟
  • 从高科技企业到效益难继:揭秘松下家电一线员工生存状态

    “现在工厂里大家最关心的是,厂子什么时候关门大家可以分钱,反正上上下下都是混日子。”松下某华东家电制造工厂的老员工王芳(化名)向记者坦言。这是她2000年大学毕...

    机器人网

扫码关注云+社区

领取腾讯云代金券