使用爬虫抓取网易云音乐热门评论生成好玩的词云
2017-04-28 09:38
465 查看
互联网爬虫是一个很有意思的技术,借由爬虫,我们可以做到很多好玩的事情——这其中就包括爬取评论。词云就是个更好玩的技术,通过技术方法分析词语出现频率,生成可视化的图形,将文字内容用图形呈现,想想就很意思。这次,我们就试着把这两个技术结合起来吧。
前言
网易云音乐一直是我向往的“神坛“,听音乐看到走心的评论的那一刻,高山流水。于是今天来抓取一下歌曲的热门评论。并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么。做成词云的好处就是直观以及美观, 其他的我也想不出来有什么了。
抓数据
要想做成词云,首先得有数据才行。于是需要一点点的爬虫技巧。抓包分析
加密信息处理
抓取热门评论内容
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即可。
封装起来,提取接口,对外界提供热评服务,或者词云生成服务。
… …
最后,网易真的是国内互联网的现象级产品——似乎所有的网易产品都天生自带神评论的属性。看了这篇文章,建议大家可以自己动手实践一下,如果操作过程出现什么问题,也可以在评论区留言交流哦~
前言
抓数据
加密信息处理
抓取热门评论内容
01抓包分析
现在URL算是找到了,下一步就是进行数据抓取了。但是简单尝试了一下,发现并不能获取到详细的信息,而是返回了空空的字符串。
再次查看hreaders的信息,发现浏览器使用的是POST的方式进行的请求。具体字段如下图:
02加密信息处理
03抓取热门评论内容
看下运行的结果吧。
词云
01词云运行效果
总结
热门评论批量爬取,只需要获取对应歌曲的ID即可。
封装起来,提取接口,对外界提供热评服务,或者词云生成服务。
… …
最后,网易真的是国内互联网的现象级产品——似乎所有的网易产品都天生自带神评论的属性。看了这篇文章,建议大家可以自己动手实践一下,如果操作过程出现什么问题,也可以在评论区留言交流哦~
相关文章推荐
- 抓取网易云音乐歌曲热门评论生成词云
- 抓取网易云音乐歌曲热门评论生成词云(转)
- Python3实战之爬虫抓取网易云音乐的热门评论
- 带你写爬虫(python)第二篇----抓取网易云音乐下面的评论(API方式)
- 网易云音乐评论抓取及生成词云
- [置顶] [爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)
- python爬虫----网易云音乐之热门评论
- 爬虫自动抓取腾讯视频评论 -- json的使用和数据解析
- 使用Python编写简单网络爬虫抓取视频下载资源
- 使用CURL构建爬虫,抓取百度百科内容
- 【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析 分类: H3_NUTCH 2014-06-04 20:10 1039人阅读 评论(0) 收藏
- (python)热门话题的某些微博评论和转发数的抓取
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping 分类: MyBatis JAVA开发杂谈 2013-06-04 16:30 17467人阅读 评论(
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 分布式爬虫:使用Scrapy抓取数据
- 使用python爬虫抓取学术论文
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- 使用Python编写简单网络爬虫抓取视频下载资源
- 使用python/casperjs编写终极爬虫-客户端App的抓取