爬取周杰伦新歌《说好不哭》的所有评论,然后生成词云图

前两天

周杰伦发了新歌

说好不哭

顿时间就刷屏了

周杰伦

是一个时代的符号

是我们的青春

早些天

小帅b听周杰伦的歌

还湿润了眼眶了呢

那时候我们唱 k
周董的歌是必点的
他的电影
《不能说的秘密》
就刷了好几遍
这次的新歌
MV 很 nice 啊
特别是里面的女主
上网搜了一下她的照片
小帅b瞬间就爱了啊
刚看了下qq音乐的评论
2500+ 的评论
小帅b不禁好奇
这些评论
都在说写什么呢
要不然就把它们爬下来
搞个词云图看看吧
接下来就是
学习 python 的正确姿势

首先我们来分析一下这个网页
打开控制面板
我们点击下一页
发起请求
发现了一个 comment 的请求
点击进去
咦~
这不就是评论的数据嘛
再具体看下 json 数据
原来评论的数据是被
封装到 comment 对象下的
commentlist 数组了
再来看看是怎么请求的吧
点击 Headers
哇靠
请求链接这么长
看看请求参数
看来看去
主要就 pagenum 和 lasthostcommentid 在变
pagenum 一看就是页码
请求第一页的 pagenum 是 0
第二页是 1
lasthostcommentid 则是
上一页请求的最后一条评论id
用 Python 来模拟请求一下吧
前方高能
这么多请求参数
我可不想一个键值一个键值的
复制粘贴
复制一下 cURL
然后打开我之前说的
postman
点击 Import 按钮
接着选择
Past Raw Text
然后
把刚刚复制的 cURL 粘贴进去
点击 Import
点击 Send
可以看到
评论数据返回了
接下来骚操作了
点击 Code
此时会出现一个面板
选择
Python Requests
直接一键生成
Python请求代码
太太太太TM爽了
有了这么方便的请求代码
爬取数据到 txt 文件不是
so easy 么
简单撸下代码
把评论数据都爬下来
先直接把刚才生成的请求代码
复制过来
创建一个文件用来存放评论数据
来个 for 循环请求每一页的数据

在每一次请求的时候

还要拿到最后一条评论的 id

作为下次请求的参数

我们知道
评论数据被封装在 json 数组里面
所以可以循环获取一下
然后写到文件里面去
不过有些评论数据含有表情啥的
需要把它们顺便给替换掉
写完之后把文件给关了
跑一下吧
完事之后
jay.txt 就有所有的评论了
有了数据之后
咱们就可以生成词云了
准备个字体文件
准备张背景颜色图片
打开
因为中文
结巴分词整起
接着就可以使用
wordcloud 搞事情了
最后我们使用
pyplot 来 show 一下吧
运行一波
词云出来

可以看到

说好不哭假面骑士

出现的频率最高

假面骑士说得是 mv 里的男主

其中的“自己”、“努力”、“人生”

也是能量满满

小帅b

谨以此篇

致敬周杰伦

以及我们的青春

下回见

peace

扫一扫

学习 Python 没烦恼

(0)

相关推荐