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


    前言

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

    开发环境:

    • Python 3.8

    • Pycharm

    模块使用

    第三方模块安装:

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

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

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

    数据来源分析

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

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

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

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

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

    代码展示

    获取数据

    1. 发送请求

    请求链接

    url = 'https://****/comment/productPageComments.action'
    
    • 1

    请求参数 --> 字典数据类型 构建完整键值对

    data = {
        # 'callback': 'fetchJSON_comment98',
        'productId': '100029079354',
        'score': '0',
        'sortType': '5',
        'page': page,
        'pageSize': '10',
        'isShadowSku': '0',
        'rid': '0',
        'fold': '1',
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    模拟浏览器 --> 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'
    }
    
    • 1
    • 2
    • 3

    发送请求 requests 模块 get 方法<请求方式>

    等号左边: url/params/headers 属于get函数里面形式参数 等号右边 url/data/headers 传入进去参数/变量

    response = requests.get(url=url, params=data, headers=headers)
    
    • 1

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

    • response 响应对象

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

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

    3. 解析数据

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

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

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

    4. 保存数据

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

    写入数据内容

        f.write(content)
        f.write('\n')
    
    • 1
    • 2
    制作词云

    导入所需模块

    # 导入结巴分词  jieba 模块国人开源的
    import jieba
    # 导入词云
    import wordcloud
    # 导入读取图片
    import imageio
    # 读取图片内容
    py = imageio.imread('img\\矢量图5.png')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    读取文件 返回对象 mode 方式模式 r 读 a追加写入保存 mode 默认是r

    f = open('口红评论.txt', encoding='utf-8')
    
    • 1

    读取内容

    text = f.read()
    
    • 1

    分词 --> 把完整一句话分成很多个单词

    string = ' '.join(jieba.lcut(text))
    
    • 1

    词云图 配置

    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
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    string 数据传入进去

    wc.generate(string)
    
    • 1

    导入词云图

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

    尾语 💝

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

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

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

    —— 心灵鸡汤

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

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

  • 相关阅读:
    Flutter布局组件:水平/垂直组件、叠加布局组件、流式布局组件
    顺为资本许达来:判断风口一看时间点,二看商业本质
    深入解析Web前端三大主流框架:Angular、React和Vue
    力扣(LeetCode)算法_C++——替换后的最长重复字符
    ICPC 2020沈阳站 - H. The Boomsday Project(dp,双指针优化)
    Linux nmcli控制NetworkManager的命令行工具
    【设计模式】Java设计模式 - 单例模式
    成为IEEE学生会员
    Goby 漏洞发布|用友 U8 Cloud ActionHandlerServlet 远程代码执行漏洞
    Android View拖拽startDragAndDrop,Kotlin
  • 原文地址:https://blog.csdn.net/python56123/article/details/130782801