继《隐秘的角落》后,又一部“爆款剧”——《三十而已》获得了口碑收视双丰收,王漫妮、顾佳、钟晓芹三个女主角的故事线频频登上微博热搜。《三十而已》于2020年7月17日在东方卫视首播,并在腾讯视频同步播出。为了了解吃瓜群众们对这部剧的看法,我爬了爬腾讯视频关于这部剧的评论,并做了简单文本可视化分析。
一、数据获取
1.分析评论页面
腾讯视频评论要点击查看更多评论才能加载更多数据,很明显是一个动态网页,评论内容使用了Ajax动态加载技术。因此,我们需要找到真实URL,然后再请求数据。
找到真实URL其实不难,按照以下步骤即可找到。当然,你也可以使用抓包工具fiddler,同样可以轻松找到。
2.寻找参数规律
我们多刷新几次,找几个真实的URL看看这些参数有什么变化。下图是我刷新了3次得到的真实的URL:
第1次刷新:
https://video.coral.qq.com/varticle/5572751505/comment/v2?callback=_varticle5572751505commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6689895369036463828&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1595994099261
第2次刷新:
https://video.coral.qq.com/varticle/5572751505/comment/v2?callback=_varticle5572751505commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6689950633282796870&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1595994099262
第3次刷新:
https://video.coral.qq.com/varticle/5572751505/comment/v2?callback=_varticle5572751505commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6690046095919619518&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1595994099263
很显然,只有cursor=?和_=?有变化,_=?为公差为1的等差数列,而cursor=?貌似没有什么规律。根据以往经验,这类参数有可能藏在上一个真实URL中。我们尝试将第1个URL在浏览器中打开,然后搜索第2个真实URL的中的cursor值。
还真有!一般情况下,我们还要多试几次,对我们的猜想进行验证。既然规律已经找到,接下来就很简单了。限于篇幅,以下给出部分代码:
def main():
#初始页面的_=?
page=1595991084333
#初始待刷新页面的cursor=?
lastId="0"
for i in range(1,1000):
time.sleep(1)
html = get_content(page,lastId)
#获取评论数据
commentlist=get_comment(html)
print("------第"+str(i)+"轮页面评论------")
k = 0
for j in range(1,len(commentlist)):
comment = commentlist[j]
k