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


前两天

周杰伦发了新歌


说好不哭


顿时间就刷屏了



周杰伦

是一个时代的符号

是我们的青春



早些天

小帅b听周杰伦的歌

还湿润了眼眶了呢




python



那时候我们唱 k
周董的歌是必点的


他的电影
《不能说的秘密》
就刷了好几遍


这次的新歌
MV 很 nice 啊





特别是里面的女主
上网搜了一下她的照片



python



小帅b瞬间就爱了啊


刚看了下qq音乐的评论


python



2500+ 的评论
小帅b不禁好奇


这些评论
都在说写什么呢


要不然就把它们爬下来
搞个词云图看看吧


接下来就是
学习 python 的正确姿势
python


首先我们来分析一下这个网页


打开控制面板



python



我们点击下一页
发起请求



python



发现了一个 comment 的请求
点击进去



python



咦~
这不就是评论的数据嘛


再具体看下 json 数据
原来评论的数据是被
封装到 comment 对象下的
commentlist 数组了



python




再来看看是怎么请求的吧
点击 Headers



python



哇靠
请求链接这么长


看看请求参数



python



看来看去
主要就 pagenum 和 lasthostcommentid 在变


pagenum 一看就是页码
请求第一页的 pagenum 是 0
第二页是 1


lasthostcommentid 则是
上一页请求的最后一条评论id



python



用 Python 来模拟请求一下吧


前方高能


这么多请求参数
我可不想一个键值一个键值的
复制粘贴


复制一下 cURL



python




然后打开我之前说的


postman



python



点击 Import 按钮
接着选择
Past Raw Text


然后
把刚刚复制的 cURL 粘贴进去



python



点击 Import



python



点击 Send



python



可以看到
评论数据返回了


接下来骚操作了
点击 Code



python




此时会出现一个面板
选择
Python Requests



python



直接一键生成
Python请求代码



python



太太太太TM爽了


有了这么方便的请求代码
爬取数据到 txt 文件不是
so easy 么


简单撸下代码
把评论数据都爬下来



先直接把刚才生成的请求代码
复制过来



python



创建一个文件用来存放评论数据



python



来个 for 循环请求每一页的数据



python




在每一次请求的时候

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

作为下次请求的参数




python




我们知道
评论数据被封装在 json 数组里面
所以可以循环获取一下
然后写到文件里面去


不过有些评论数据含有表情啥的
需要把它们顺便给替换掉



python





写完之后把文件给关了



python




跑一下吧



python




完事之后
 jay.txt 就有所有的评论了



python




有了数据之后
咱们就可以生成词云了


准备个字体文件



python




准备张背景颜色图片



python




打开



python




因为中文
结巴分词整起


python




接着就可以使用
 wordcloud 搞事情了



python




最后我们使用
pyplot 来 show 一下吧



python




运行一波
词云出来



python



可以看到

说好不哭假面骑士

出现的频率最高



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

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

也是能量满满



小帅b

谨以此篇

致敬周杰伦

以及我们的青春



下回见

peace


python

扫一扫

学习 Python 没烦恼


python


原文始发于微信公众号(学习python的正确姿势):python

发表回复