快捷搜索:  朋友圈  as  伪静态  次数  响应式  虎牙  浏览数  anniu

Python可视化分析《雪中悍刀行》,看看它为什么这么火?

本期是对热播网剧《雪中悍刀行》的一次爬虫与数据分析总爬取条数1W条评论很适合新人练手。案例中还特别加入了对评论的情绪文本分析处理供大家参考。

图片

爬虫方面由于腾讯的评论数据是封装在json里面所以只需要找到json文件对需要的数据进行提取保存即可。

图片

视频网址

https://v.qq.com/x/cover/mzc0020020cyvqh.html

评论json数据网址

https://video.coral.qq.com/varticle/7579013546/comment/v2

注只要替换视频数字id的值即可爬取其他视频的评论

本文内容仅作为编程技术学习讨论相关代码和数据不可用于商业用途否则后果自负。

如何查找视频id

图片

图片

通过Chrome开发者工具的Network查找请求。具体使用可参考旧文爬虫必备工具掌握它就解决了一半的问题

项目结构

图片

一. 爬虫部分

1. 爬取评论内容代码

spiders.py

import requestsimport reimport randomdef get_html(url, params):    uapools  [        Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36,        Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0,        Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14    ]    thisua  random.choice(uapools)    headers  {User-Agent: thisua}    r  requests.get(url, headersheaders, paramsparams)    r.raise_for_status()    r.encoding  r.apparent_encoding    r.encoding  utf-8# 不加此句出现乱码    return r.textdef parse_page(infolist, data):    commentpat  content:(.*?)    lastpat  last:(.*?)    commentall  re.compile(commentpat, re.S).findall(data)    next_cid  re.compile(lastpat).findall(data)[0]    infolist.append(commentall)    return next_ciddef print_comment_list(infolist):    j  0    for page in infolist:        print(第  str(j  1)  页\n)        commentall  page        for i in range(0, len(commentall)):            print(commentall[i]  \n)        j  1def save_to_txt(infolist, path):    fw  open(path, w, encodingutf-8)    j  0    for page in infolist:        #fw.write(第  str(j  1)  页\n)        commentall  page        for i in range(0, len(commentall)):            fw.write(commentall[i]  \n)        j  1    fw.close()def main():    infolist  []    vid  7579013546;    cid  0;    page_num  3000    url  https://video.coral.qq.com/varticle/  vid  /comment/v2    #print(url)    for i in range(page_num):        params  {orinum: 10, cursor: cid}        html  get_html(url, params)        cid  parse_page(infolist, html)    print_comment_list(infolist)    save_to_txt(infolist, content.txt)main()
        

您可能还会对下面的文章感兴趣: