首页 > 编程语言 >Python获取“双十一”商品评论,做词云分析,一个简单的案例教学

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

时间:2022-11-02 17:00:10浏览次数:57  
标签:string 双十 Python headers 词云 url 数据 response

前言

环境使用

  • 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

对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:753182387】

数据获取代码实现

发送请求

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字典数据

解析数据

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

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

保存数据

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

词云代码

# 导入结巴分词  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)

标签:string,双十,Python,headers,词云,url,数据,response
From: https://www.cnblogs.com/qshhl/p/16851581.html

相关文章

  • Python基础之列表,元组,字典,集合,推导式,迭代器
    目录1列表1.1定义1.2访问列表中的值1.3更新列表1.4删除列表元素1.5Python列表脚本操作符1.6Python列表截取与拼接1.7嵌套列表1.8列表比较2元组2.1定义2.2创建......
  • Python基础之函数,面向对象
    目录1函数1.1定义一个函数1.2函数调用1.3参数1.3.1必需参数1.3.2关键字参数1.3.3默认参数1.3.4不定长参数1.3.4.1不定长*:元组1.3.4.2不定长**:字典1.3.5匿名......
  • Python处理刚刚,分钟,小时,天前等时间
    简介用爬虫获取目标网站数据后可能会遇见时间为处理刚刚,分钟,小时,天前等时间格式,如图解决问题:写了一个工具类来处理该问题,其中封装了两个函数1.将时间中的中文数字转......
  • python 中 if语句取反
     001、>>>str1=">aabbcc">>>ifstr1.startswith(">"):...print("yes")...yes>>>ifnotstr1.startswith(">"):##python中if语句取反...prin......
  • 人工智能环境搭建-ubantu python3.10.8安装记录
    当前时间(2022-11)python3.11已经出来,python3.10已稳定 配置一个AI开发的python环境,代码部署迁移时,安装环境也一块带走OS:ubantu20.10安装用户:xt,  python环境sqlite......
  • 使用 python flask 框架实现一个简单的抽奖系统
    Flask实现一个简易的抽奖系统项目前置知识目前python主流的框架:Django、flask、Tornado简介:1.框架框架?为什莫使用框架?(前置知识讲解比较冗杂,望谅解)框架:英文......
  • Python推导式创建数列的方法
    一、列表推导式列表推导式生成列表对象,语法如下:'''[表达式foritemin可迭代对象]或者[表达式foritemin可迭代对象if条件判断]'''例子l1=[xforxinr......
  • python-看代码YOLOv3学习
    file.readline():作为列表返回文件中的所有行,其中每一行都是列表对象中的一项.str.replace(old,new[,max])rstrip():删除string字符串末尾的指定字符,默认为空白符,......
  • 3.7 使用Python操作工作表对象 创建,删除,复制工作表。修改工作表名称
    创建工作表workbook.create_sheet(sheet名称)删除工作表workbook.remove(sheet实例)复制工作表workbook.copy_worksheet(sheet实例)修改工作表名称sheet.title冻结......
  • python命令手册重编(2021版)
    python命令手册重编(2021版)设定编码-支持中文1基础安装python2.7wgethttps://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgztarxvfPython-2.7.9.......