软件测试开发频道
频道主
MediaCrawler 提取评论生词云:小红书实例-麦琳评论区 


MediaCrawler
项目地址:
• 可以实现小红书爬虫,抖音爬虫, 快手爬虫, B站爬虫, 微博爬虫。
• 目前能抓取小红书、抖音、快手、B站、微博的视频、图片、评论、点赞、转发等信息。
• 原理:利用playwright搭桥,保留登录成功后的上下文浏览器环境,通过执行JS表达式获取一些加密参数 通过使用此方式,免去了复现核心加密JS代码,逆向难度大大降低。
• git下载或者直接下载。
• 进入项目根目录:cd MediaCrawler
创建虚拟环境:
python -m venv venv
# macos & linux 激活虚拟环境
source venv/bin/activate
# windows 激活虚拟环境 venv\Scripts\activate
• 我是通过pycharm打开的会自动安装加载环境。
安装依赖库
pip install -r
安装 playwright浏览器驱动
playwright install
• Playwright 是由微软开发的用于自动化测试和 Web 爬取的多浏览器、跨平台开源工具。修改配置
• 打开浏览器用来扫码。
• 限制抓取1000条评论。
• 小红书帖子地址运行爬虫
• python --platform xhs --lt qrcode --type detail
• --type detail参数表示爬取指定帖子的评论。
• 运行效果是这样的。处理json
• 本身MediaCrawler是自带词云的在配置出可以打开。
• 这里我选择自己处理
• 不想自己写,之间让腾讯ai写:
读取detail comments 2024-11-12,json里面的list数组的每个json里面的content的值作为词云数据
• 我们直接得的到了词云的处理代码
• 运行后发现有我,你这样的无关词最多。
• 优化去掉下。
import json
import jieba
from wordcloud import WordCloud
import 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)
print(words_str)
# 创建词云对象
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,不对具体事件进行评价。
• 注:在使用这些数据时,务必遵守法律法规,尊重用户隐私,并确保数据的合法合规使用。不恰当的数据操作可能会触犯法律,损害企业声誉及用户信任。本文中的爬虫技术仅限于学习和研究目的,不得用于其他平台的大规模爬取或非法行为。
- 下载图片
- 复制图片
2024-11-13
浏览240
教程代码
登录后评论
2
评论
分享