Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python selenium爬取影评生成词云图

Python selenium爬取影评生成词云图

作者头像
全栈若城
发布于 2024-02-29 10:40:09
发布于 2024-02-29 10:40:09
23100
代码可运行
举报
文章被收录于专栏:若城技术专栏若城技术专栏
运行总次数:0
代码可运行

问题描述

通过中文分词、过滤停用词、生成词云图等步骤对评论数据进行处理和可视化。

效果截图如下

非常nice

问题分析

该程序需要使用 Selenium 库来模拟浏览器操作,因此需要下载安装 Chrome 浏览器以及对应版本的 Chromedriver。 程序中需要读取本地 stopwords.txt 文件中的停用词列表,因此需要先准备好该文件。 生成的词云图字体需要下载并放到与文件同级的目录上

前期准备

代码中用到的库和版本如下

  • Selenium (3.141.0)
  • jieba (0.42.1)
  • wordcloud (1.8.1)
  • matplotlib(3.4.2)
  • numpy (1.20.3)

运行命令 pip install selenium jieba wordcloud matplotlib numpy 进行下载

完整代码及解释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 导入所需库
from selenium import webdriver  # 网页自动化测试工具
from selenium.webdriver.common.by import By  # 定位元素方法
import jieba  # 中文分词库
from wordcloud import WordCloud  # 词云库
import matplotlib.pyplot as plt  # 数据可视化库
import numpy as np  # 数学计算库
import os  # 操作系统接口库

# 创建浏览器对象并打开目标网页
browser = webdriver.Chrome()  # 创建 Chrome 浏览器对象
url = 'https://movie.douban.com/subject/34841067/comments?status=P'  # 目标网页的 URL
browser.get(url)  # 打开目标网页

# 定义选择器和结果列表
selector = 'span.short'  # CSS 选择器,表示评论所在的元素
results = []  # 用于存储获取到的评论

# 判断是否存在下一页按钮,不断翻页并获取评论数据
while True:
    elements = browser.find_elements(By.CSS_SELECTOR, selector)  # 使用选择器查找所有评论元素
    for element in elements:
        comment = element.text.strip()  # 获取元素的文本,去除空格和换行符
        if len(comment) > 0:  # 如果评论非空
            results.append(comment)  # 存储该评论
    # 点击下一页按钮
    try:
        next_btn = browser.find_element(By.LINK_TEXT, '后页>')  # 查找“下一页”按钮元素
        next_btn.click()  # 点击“下一页”按钮
    except:
        break  # 如果没有找到“下一页”按钮,说明已经到达最后一页,退出循环

# 关闭浏览器对象
browser.quit()  # 关闭浏览器

# 合并所有评论文本
text = '\n'.join(results)  # 将所有评论文本拼接成一个字符串,用换行符隔开

# 使用 jieba 分词库进行中文分词
words = jieba.cut(text)  # 对评论文本进行中文分词,返回一个生成器对象

# 获取停用词列表
stop_words_path = 'stopwords.txt'  # 停用词文件的路径
with open(stop_words_path, encoding='utf-8') as f:
    stop_words = f.read().splitlines()  # 读取停用词文件,将每行转换为一个元素,存储为列表

# 过滤出有效词汇
valid_words = [word for word in words if word not in stop_words]  # 过滤掉停用词,仅保留有效词汇

# 将过滤后的词汇拼接成字符串
valid_text = ' '.join(valid_words)  # 将词汇列表中的所有元素拼接成一个字符串,用空格隔开

# 创建词云对象
wc = WordCloud(
    font_path="PingFang Bold.ttf",  # 指定词云字体
    width=800,  # 词云图像宽度
    height=600,  # 词云图像高度
    background_color='white',  # 背景颜色
    max_words=200,  # 最大显示单词数
    max_font_size=80,  # 最大字号
    random_state=42  # 随机状态
)

# 生成词云图
wc.generate(valid_text)  # 生成词云图像数据

# 定义输出路径
output_dir = 'output'  # 词云图像输出路径
output_path = os.path.join(output_dir, 'wordcloud.png')  # 拼接输出文件路径

# 检查输出目录是否存在
if not os.path.exists(output_dir):  # 如果输出目录不存在
    os.makedirs(output_dir)  # 创建该目录及其所有父目录

# 输出词云图
wc.to_file(output_path)  # 将词云图像输出到指定文件

# 显示词云图
plt.imshow(wc, interpolation='bilinear')  # 将词云图像显示出来,使用双线性差值算法平滑显示
plt.axis('off')  # 不显示坐标轴
plt.show()  # 显示图像

字体素材

链接: https://pan.baidu.com/s/1-nXL9-8NRbWPd2m4AGOUNw 提取码: esf2

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬取网易云歌曲评论,做词云分析
前言 emmmm 没什么说的,想说的都在代码里 环境使用 Python 3.8 解释器 3.10 Pycharm 2021.2 专业版 selenium 3.141.0 本次要用到selenium模块,所以请记得提前下载好浏览器驱动,配置好环境 代码实现 先是安装、导入所需模块 from selenium import webdriver # 导入浏览器的功能 import re # 正则表达式模块, 内置 import time # 时间模块, 程序延迟 1. 创建一个浏览器对象 drive
松鼠爱吃饼干
2022/09/01
9160
Python爬取网易云歌曲评论,做词云分析
Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况
今天我们要做的事情是使用动态爬虫来爬取QQ空间的说说,并把这些内容存在txt中,然后读取出来生成云图,这样可以清晰的看出朋友的状况。
龙哥
2018/10/22
1.5K0
Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况
用Python爬取糗事百科段子,可视化后结果发现
生活真是太苦了,需要找点快乐的精神食粮支撑社畜生活,听说糗事百科段子挺多,今天就来看一看!
朱小五
2021/02/05
5530
用Python绘制词云:让数据可视化变得生动有趣
导读:你是否曾想过,如何将一堆枯燥的数据转化为一幅幅引人入胜的视觉艺术品?词云,作为一种流行的数据可视化技术,能够将文本数据中的关键词以不同大小和颜色呈现,直观地展示信息的密度和重要性。在本文中,我们将探索如何使用Python——一种强大而灵活的编程语言——来绘制出既美观又富有洞察力的词云图。
三猫
2024/06/26
5000
用Python绘制词云:让数据可视化变得生动有趣
拿来就用能的Python词云图代码|wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今天,我们就来学习一下Python生成词云的常用库「wordcloud」。
吾非同
2021/03/12
4.8K0
怎么制作词云图?
使用 Python 环境下的 wordcloud 工具,就能方便地生成词云图(感谢开源社区!🎉️ )。
WEBJ2EE
2024/03/22
6420
怎么制作词云图?
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
详细介绍和用法可以去github看:https://github.com/fxsjy/jieba,这里不多做介绍,只介绍本次用到的
极简小课
2022/06/27
6000
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
再也不用手动复制粘贴收集Taptap游戏评论了,还可以制作好看的热词词云图~
同学们,猜猜以下6款游戏分别是TapTap上面的哪6款产品呢??欢迎在留言区留言哦~ 【我们会在接下来教大家怎么一键生成大家喜爱的游戏产品评论热词词云】
可以叫我才哥
2021/08/05
1.3K0
python之生成带背景的词云图(附源码)
wordcloud.WordCloud 类是用于生成词云图像的主要类常用参数及示例
不止于python
2023/09/05
9060
python之生成带背景的词云图(附源码)
赘婿词云图制作
之前的文章我们已经介绍了如何使用wordcloud库制作中英文词云图,并介绍了中英文停用词的使用方法,介绍了如何美化词云图,例如换字体背景颜色,背景换成图片等,那这次我们就以现在很火的电视剧赘婿为例,制作赘婿小说的词云图。
罗罗攀
2021/03/15
8350
关于词云可视化笔记三(pkuseg和中文词汇可视化)
pkuseg是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。pkuseg具有如下几个特点:
python与大数据分析
2022/03/11
4980
关于词云可视化笔记三(pkuseg和中文词汇可视化)
Python生成圣诞节词云-代码案例剖析
这段代码使用了jieba进行中文分词,结合stylecloud库生成了一个基于指定配色方案的圣诞主题词云图。以下是对代码的解释:
一键难忘
2023/12/23
1.4K0
软件测试|教你使用Python快速绘制酷炫词云图
词云图现在似乎成了各个互联网产品年终盘点的标准形式,比如我们的热搜,我们QQ音乐网易云音乐最喜欢的歌手最喜欢的歌曲等等,词云图实在是太契合互联网时代了。那么我们能不能自己也去画一个词云图出来?就用我们的Python来完成这个目标。
霍格沃兹测试开发Muller老师
2023/02/19
8350
【实战教程】借助 CodeBuddy 轻松打造精美中文词云图 - AI 编程助手使用体验
在数据可视化领域,词云图是一种直观而富有艺术感的表现形式,能够清晰地展示文本中词语的频率和重要性。本文将详细记录如何借助 CodeBuddy 这款 AI 编程助手,从零开始实现一个支持中文的词云图生成工具。我们将通过一系列提问与优化,逐步完善代码,最终得到一个功能完备的词云图应用。
全栈若城
2025/05/19
1130
Python 爬虫实践:《战狼2》豆瓣影评分析
来源:hang segmentfault.com/a/1190000010473819 简介 刚接触python不久,做一个小项目来练练手。前几天看了《战狼2》,发现它在最新上映的电影里面是排行第一的,如下图所示。准备把豆瓣上对它的影评做一个分析。 目标总览 主要做了三件事: 抓取网页数据 清理数据 用词云进行展示 使用的python版本是3.5. 一、抓取网页数据 第一步要对网页进行访问,python中使用的是urllib库。代码如下: from urllib import request res
小小科
2018/05/02
1.1K0
Python 爬虫实践:《战狼2》豆瓣影评分析
Python数据可视化 词云图 绘制词云的方法总结
pyecharts是基于echarts的python库,能够绘制多种交互式图表,和其他可视化库不一样,pyecharts支持链式调用。
叶庭云
2020/09/17
31.6K0
Python数据可视化   词云图  绘制词云的方法总结
python爬鱿鱼游戏的评价 看看鱿鱼游戏到底值不值得看 初识selenium
鱿鱼游戏是什么,相信大家都不陌生了,虽然说博主没看过这部剧,但是还是对豆瓣的评论有点好奇,刚刚好近期学习了selenium,就当练练手了,来吧来吧,爬爬爬。
小王不头秃
2024/06/19
1420
python爬鱿鱼游戏的评价 看看鱿鱼游戏到底值不值得看 初识selenium
实战|Python轻松实现绘制词云图(附详细源码)
项目背景虽然现在已经有很多现成的制作词云图的工具了,但一般存在以下几个问题:问题一:工具太多,眼花缭乱,质量参差不齐,选择困难症; 问题二:大多词云工具或多或少有一些限制,自定义的空间有限;问题三:有些工具甚至收费。基于以上几个问题,迪迪觉得有必要写一篇Python绘制词云图的文章,因为实在太简单!没有任何编程基础的小白都能搞定的事,还找什么工具啊!
程序员迪迪
2022/01/10
1.3K0
(数据科学学习手札71)在Python中制作个性化词云图
词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词:
Feffery
2019/11/18
1.2K0
【推荐收藏】介绍2种Python绘制词云的手法,你会偷偷pick谁呢?
最近有粉丝同学在演示此前案例时发现在制作词云的时候有报错,希望才哥能讲解一下Python词云的绘制,那么今天他来了。
可以叫我才哥
2021/08/05
8090
推荐阅读
相关推荐
Python爬取网易云歌曲评论,做词云分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验