您现在的位置是:首页 >技术交流 >python获取某电商平台口红数据并制作词云网站首页技术交流

python获取某电商平台口红数据并制作词云

魔王不会哭 2024-06-17 11:25:00
简介python获取某电商平台口红数据并制作词云

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

开发环境:

  • Python 3.8

  • Pycharm

模块使用

  • requests

  • jieba 结巴分词

  • wordcloud 词云

第三方模块安装:

win + R 输入cmd 输入安装命令 或 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

数据来源分析

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

  • 采集数据是什么东西? 通过那个url地址得到想要数据的内容

  • 抓包分析: 浏览器自带工具 --> 开发者工具

    I. F12 或者 鼠标右键点击检查 选择 network 点击第二页

    II. 复制评论内容, 在开发者工具里进行搜索, 可以直接找对应评论数据包

代码展示

获取数据

1. 发送请求

请求链接

url = 'https://****/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)

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

  • response 响应对象

  • response.text 获取响应文本数据

  • response.json() 获取响应json字典数据

3. 解析数据

字典数据类型: 通过键值对提取数据内容 <字典取值>

for循环遍历 把列表里面元素一个一个提取出来

for i in response.json()['comments']:
    content = i['content']
    print(content)

4. 保存数据

with open('口红评论.txt', mode='a', encoding='utf-8') as f:

写入数据内容

    f.write(content)
    f.write('
')

制作词云

导入所需模块

# 导入结巴分词  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={'的', '了', '很', '也'},
    # 设置背景颜色
    源码、解答、资源、数据集+V:pytho8987
    # background_color='pink',
    contour_width=5,
    contour_color='pink',
    mask=py
)

string 数据传入进去

wc.generate(string)

导入词云图

wc.to_file('有形状的词云黑.png')
print(string)

尾语 ?

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 ?

?问题解答 · 源码获取 · 技术交流 · 抱团学习请联系?

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。