前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MediaCrawler 提取评论生词云:小红书实例-麦琳评论区

MediaCrawler 提取评论生词云:小红书实例-麦琳评论区

原创
作者头像
怪盗LYL
发布2024-11-12 23:41:37
发布2024-11-12 23:41:37
33700
代码可运行
举报
文章被收录于专栏:测试开发真货测试开发真货
运行总次数:0
代码可运行
  • 文章开始之前,推荐一些别人写的很好的文章!感兴趣的也可以去读一下哦!
  • 今日推荐文章:工作常备:自定义注解实现数据脱敏
  • 文章链接: https://cloud.tencent.com/developer/article/2464989
  • 在这个资源中,小雨详细介绍了如何利用Java自定义注解来实现数据脱敏,这是一项对于保护用户隐私和企业数据安全至关重要的技术。文章的写作风格通俗易懂,内容深入而全面,不仅提供了丰富的理论知识,更重要的是,包含了大量的代码实例,这些实例对于理解如何对敏感数据(例如电话号码、身份证号、电子邮件等)进行脱敏处理非常有用。

MediaCrawler

项目地址:

代码语言:javascript
代码运行次数:0
运行
复制
https://github.com/NanmiCoder/MediaCrawler
  • 可以实现小红书爬虫,抖音爬虫, 快手爬虫, B站爬虫, 微博爬虫。
  • 目前能抓取小红书、抖音、快手、B站、微博的视频、图片、评论、点赞、转发等信息。
  • 原理:利用playwright搭桥,保留登录成功后的上下文浏览器环境,通过执行JS表达式获取一些加密参数 通过使用此方式,免去了复现核心加密JS代码,逆向难度大大降低。
  • git下载或者直接下载。
  • 进入项目根目录
代码语言:javascript
代码运行次数:0
运行
复制
cd MediaCrawler

创建虚拟环境

代码语言:javascript
代码运行次数:0
运行
复制
python -m venv venv
# macos & linux 激活虚拟环境
source venv/bin/activate
# windows 激活虚拟环境
venv\Scripts\activate
  • 我是通过pycharm打开的会自动安装加载环境。

安装依赖库

代码语言:javascript
代码运行次数:0
运行
复制
pip install -r requirements.txt
安装 playwright浏览器驱动
playwright install
  • Playwright 是由微软开发的用于自动化测试和 Web 爬取的多浏览器、跨平台开源工具。

修改配置

  • 打开浏览器用来扫码。

  • 限制抓取1000条评论。
  • 小红书帖子地址

运行爬虫

  • python main.py --platform xhs --lt qrcode --type detail
  • --type detail参数表示爬取指定帖子的评论。

  • 运行效果是这样的。

处理json

  • 本身MediaCrawler是自带词云的在配置出可以打开。
  • 这里我选择自己处理
  • 不想自己写,之间让腾讯ai写:
代码语言:javascript
代码运行次数:0
运行
复制
读取detail comments 2024-11-12,json里面的list数组的每个json里面的content的值作为词云数据

  • 我们直接得的到了词云的处理代码

  • 运行后发现有我,你这样的无关词最多。
  • 优化去掉下。
代码语言:javascript
代码运行次数:0
运行
复制
import json
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取JSON文件
with open('detail_comments_2024-11-12.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

# 提取所有评论内容
comments = [item['content'] for item in data]

# 将所有评论合并为一个字符串
text = ' '.join(comments)

# 使用jieba进行中文分词
words = jieba.cut(text)
# 定义要去除的特定词汇
stopwords = ['我', '你', '了','的','是','上','下','一秒 :','一秒',':']
# stopwords = []
# 过滤掉特定词汇
filtered_words = [word for word in words if word not in stopwords]

# 将过滤后的分词结果转换为字符串
words_str = ' '.join(filtered_words)
# 创建词云对象
wordcloud = WordCloud(font_path='simhei.ttf',  # 设置字体路径以支持中文显示
                      width=1600,
                      height=800,
                      background_color='white').generate(words_str)

# 显示词云
plt.figure(figsize=(20, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 不显示坐标轴
plt.show()
  • 重新生成。

  • 可以看到关键词李行亮最多,剩下都是最近热点词。
  • 本文只是演示下MediaCrawler和词云demo,不对具体事件进行评价。
  • 注:在使用这些数据时,务必遵守法律法规,尊重用户隐私,并确保数据的合法合规使用。不恰当的数据操作可能会触犯法律,损害企业声誉及用户信任。本文中的爬虫技术仅限于学习和研究目的,不得用于其他平台的大规模爬取或非法行为。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MediaCrawler
    • 创建虚拟环境
    • 安装依赖库
  • 修改配置
  • 运行爬虫
  • 处理json
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档