Code前端首页关于Code前端联系我们

Python爬虫实战案例:爬取周董《最伟大的作品》的31074条评论进行词云分析

terry 2年前 (2023-09-25) 阅读数 51 #后端开发
2022年7月15日,周杰伦新专辑《最伟大的作品》正式发布登上音乐排行榜榜首,屠榜正式登顶发布到排行榜顶部。截至今日,专辑销量已达520万+,粉丝评论数达13万+。不得不说,周董真是yyds。作为一个老粉丝,我忍不住悄悄拿出25块钱,听起来很美。 Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析本案例将使用Python爬取QQ音乐粉丝在《最伟大作品》上的数万条评论,然后使用jieba库对评论进行切分,使用Wordcloud库构建词云图,整体了解一下球迷们思考周董的新专辑。评估!因为评论太多,我用Slenium模拟浏览器爬取了差不多2000次,总共爬取了31074条评论,如下图: Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析目录
  1. 页面分析程序
  2. 是评论分割和词云图绘制
Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

01页面分析

QQ音乐的评论页面是一个动态加载的网站,每次下载都会生成一批评论。所以使用selenium结合xpath分析评论的文本内容就可以得到。 《最伟大的作品》的URL对应的评论页面如下:

# 专辑网址url = 'https://y.qq.com/n/ryqq/albumDetail/0042cH172YJ0mz'
Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

使用xpath定位所有评论文本在网站上存储的位置:Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

xpath定位对应所有评论文本: ❀ ❀ xpath 定位对应单个评论文本:

'//*[@id="comment_box"]/div[4]/ul/li[1]/div/p/span'

因此,可以先定位到所有评论位置,然后再逐一找到每个单独的评论位置。 Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析02采集程序

整合第1节的思路,开始采集评论内容,并保存为最大工作评论.txt...

from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time
url = 'https://y.qq.com/n/ryqq/albumDetail/0042cH172YJ0mz'driver = webdriver.Chrome()driver.get(url)driver.implicitly_wait(3)  # 智能化等待:页面渲染加载过程需要时间driver.maximize_window()  # 最大化浏览器for x in range(1, 4000, 2):  # range的范围控制浏览器下拉量    time.sleep(1)    j = x / 9    js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j    driver.execute_script(js)comments = driver.find_elements(By.XPATH,'//*[@id="comment_box"]/div[4]/ul/li')with open('最伟大作品评论.txt', mode='a', encoding='utf-8') as f:    n = 0    for i in comments:        try:            comment = i.find_elements(By.XPATH,'./div/p/span')[0].text            n += 1            print(comment,'第{}条'.format(n))            f.write(comment + '\n')        except:            continuedriver.close()

采集结果如下: Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

保存评论收到的最大的作品评论.txt 文件内容如下: Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

03 对评论进行分段并绘制词云图

使用jieba库对评论内容进行分段,标点符号和长度为删除小于2的,保存到列表中,构建词云图:

import jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = 'SimHei'
#导入评论文本文件content = open(r'最伟大作品评论.txt',encoding='utf-8')list_all = []for ls in content:    list_temp = ls.strip('\n')    list_all.append(list_temp)
#对list进行遍历,并将其做分词切割后生成词列表word_list =[]exclud = [',','!','?','《',r'\\','。','的','了',' ']for sentence in list_all:    word_list_temp = jieba.cut(sentence)    for i in word_list_temp:        if i in exclud:            continue        else:            word_list.append(i)word_list = [x for x in word_list if len(x)>=2]print(word_list)
# 绘制词云图comment_word = ' '.join(word_list)cloud=WordCloud(font_path='simhei.ttf',background_color='white',width=1200,height=1200).generate(comment_word)cloud.to_file('最伟大作品评论词云图.png')#保存图片

操作分词列表输出如下(部分截图): Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

保存到本地的评论词云图为如下: Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

从词云图可以看出,歌手们的评论总数揭晓 对于周董新专辑的认可,最受欢迎的评论是:周杰伦听起来真棒,干得好和别人好评! ! ! Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析总结本文介绍了使用Python的slenium库结合xpath分析来处理数万条QQ音乐粉丝对周杰伦最新专辑《最伟大的作品》的评论。并利用jieba和WordCloud库绘制词云图来分析粉丝对周董新专辑的整体评价。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门