前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python获取“双十一”商品评论,做词云分析,一个简单的案例教学

Python获取“双十一”商品评论,做词云分析,一个简单的案例教学

作者头像
松鼠爱吃饼干
发布2022-12-05 21:45:41
3950
发布2022-12-05 21:45:41
举报
文章被收录于专栏:Python分享

前言

环境使用

  • Python 3.8
  • Pycharm

模块使用

  • requests
  • jieba 结巴分词
  • wordcloud 词云

数据来源分析

明确需求 <数据来源分析>

  • 采集数据是什么东西? 通过那个url地址得到想要数据的内容
  • 抓包分析: 浏览器自带工具 --> 开发者工具 I. F12 或者 鼠标右键点击检查 选择 network 点击第二页 II. 复制评论内容, 在开发者工具里进行搜索, 可以直接找对应评论数据包

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100029079354&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1

数据获取代码实现

发送请求

代码语言:javascript
复制
url = 'https://club.jd.com/comment/productPageComments.action'
# 请求参数 --> 字典数据类型 构建完整键值对
data = {
    # 'callback': 'fetchJSON_comment98',
    'productId': '100029079354',
    'score': '0',
    'sortType': '5',
    'page': page,
    'pageSize': '10',
    'isShadowSku': '0',
    'rid': '0',
    'fold': '1',
}
# 模拟浏览器 --> headers 请求头
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求 requests 模块 get 方法<请求方式>
# 等号左边: url/params/headers 属于get函数里面形式参数 等号右边 url/data/headers 传入进去参数/变量
response = requests.get(url=url, params=data, headers=headers)

获取数据, 服务器返回响应数据

  • response 响应对象
  • response.text 获取响应文本数据
  • response.json() 获取响应json字典数据

解析数据

字典数据类型: 通过键值对提取数据内容 <字典取值> 根据冒号左边的内容[键], 提取冒号右边的内容[值]

代码语言:javascript
复制
# for循环遍历 把列表里面元素一个一个提取出来
for i in response.json()['comments']:
    content = i['content']
    print(content)

保存数据

代码语言:javascript
复制
with open('口红评论.txt', mode='a', encoding='utf-8') as f:
    # 写入数据内容
    f.write(content)
    f.write('\n')

词云代码

代码语言:javascript
复制
# 导入结巴分词  jieba 模块国人开源的
import jieba
# 导入词云
import wordcloud
# 导入读取图片
import imageio
# 读取图片内容
py = imageio.imread('img\\矢量图5.png')
"""
词云分析:
    - 读取文件内容 文本
    - 进行分词, 把一整句话, 分成一个一个词语
    - 词云模块进行输出
"""
# 读取文件 返回对象 mode 方式模式 r 读 a追加写入保存 mode 默认是r
f = open('口红评论.txt', encoding='utf-8')
# 读取内容
text = f.read()
# 分词 --> 把完整一句话分成很多个单词
string = ' '.join(jieba.lcut(text))
# 词云图 配置
wc = wordcloud.WordCloud(
    width=1000, # 宽
    height=700,  # 高
    font_path='msyh.ttc', # 词云字体
    # 设置停用词, 把没有词汇, 停用
    stopwords={'的', '了', '很', '也'},
    # 设置背景颜色
    # background_color='pink',
    contour_width=5,
    contour_color='pink',
    mask=py
)
# string 数据传入进去
wc.generate(string)
# 导入词云图
wc.to_file('有形状的词云黑.png')
print(string)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 环境使用
      • 模块使用
        • 数据来源分析
        • 数据获取代码实现
          • 发送请求
            • 解析数据
              • 保存数据
              • 词云代码
              相关产品与服务
              云开发 CLI 工具
              云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档