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

2022-07-2220:30:47后端程序开发Comments1,281 views字数 2350阅读模式
2022年7月15日,周杰伦新专辑《最伟大的作品》正式发售,瞬间屠榜于各大音乐榜单。截止今日,专辑销量已高达520万+,歌友们的评论数量也高达13万+,不得不说周董真的是yyds。作为多年老粉,我也忍不住默默地掏出了25块钱,听起了红颜如霜。
Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析
本案例将使用python爬取QQ音乐歌友们对《最伟大作品》的上万条评论,然后通过jieba库对评论进行分词,使用wordcloud库构建词云图,整体看看歌友们对周董新专辑的评价!因为评论实在是太多,我使用slenium模拟浏览器下拉了近2000次,共爬取了31074条评论,如下图所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html
Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析
目录文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html
  1. 页面分析
  2. 采集程序
  3. 对评论分词并绘制词云图
Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

01
页面分析

QQ音乐的评论页面,是一个动态加载的网页,每次下拉会显示一批评论,因此可以使用selenium结合xpath解析获得评论的文本内容。《最伟大的作品》对应的网址的评论页面如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

使用xpath定位到网页中所有评论文本存放的位置:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

所有评论文本对应的xpath定位:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

单个评论文本对应的xpath定位:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

因此可以先通过定位到所有的评论位置,然后逐个定位到所有的单条评论位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

整合第1节中的思路,开始动手,采集评论内容,并保存为 最伟大的作品评论.txt ...文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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()

采集到的结果如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

保存评论得到的 最伟大的作品评论.txt 文件内容如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

03
对评论分词并绘制词云图

运用jieba库对评论内容进行分词,去除标点符号和长度小于2的词,存入列表中,构建词云图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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')#保存图片

运行输出的分词列表如下(部分截图):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

保存到本地的评论词云图如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

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

从词云图可以看见,歌友们整体评论表露出对周董新专辑的认可,评论内容最多的是:周杰伦 真的 好听 伟大 作品 等等赞扬的内容!!!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html

Python爬虫实战案例:爬取周董《最伟大的作品》31074条评论做词云分析
总结
本文介绍了使用python的slenium库结合xpath解析,爬取QQ音乐歌友们对周杰伦最新专辑《最伟大的作品》的上万条评论。并运用jieba,WordCloud库绘制词云图,用以分析歌友们对周董新专辑的整体评价。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25805.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/25805.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定