精华内容
下载资源
问答
  • 如何获取电商数据
    2022-06-16 23:20:38

    一、项目架构

    技术选型

    数据采集:Flume,Kafka,Datax

    数据存储:Mysql,HDFS

    数据计算:Hive,Saprk

    任务调度:DolphinScheduler

    数据可视化:Superset

    高可用:Zookeeper

    项目架构

    在这里插入图片描述

    前端埋点

    别克商城分PC、WAP、微信小程序埋点

    PC、WAP为自动埋点 微信小程序为手动埋点

    埋点类型

    浏览(页面加载的时候)

    点击(点击页面某个点位)

    停留(近入下一个页面或者离开当前页面时在当前页面的停留时间)

    曝光 (开屏、轮播等显示日志) 用来算 CTR(Click-Through-Rate) 点击通过率

    留资、订单关联 (在产生留资、订单时会有一条对应id与用户唯一标识关联的数据,为了给留资、订单划分渠道)

    二、数据采集

    用户行为数据采集

    采集Flume

    基本配置:

    Source:TailDir Source

    拦截器:使用ETL拦截器以及提取日志的时间戳放在header中方面落盘,解决由于上报时间和网络抖动造成的数据飘逸问题

    选择器:multiplexing

    Channel: Kafka Channel

    采用Kafka Channel,省去了Sink,提高了效率。

    Kafka

    浏览、点击、停留、曝光 的数据在一个文件夹里,留资、订单关联数据在另外一个文件夹里

    topic_log 和 topic_order_leads 对应这两个topic文件夹 3分区两副本

    消费Flume

    基本配置:

    Source: Kafka Source

    Channel: File Channel

    Sink: HDFS Sink

    Flume拦截器的编写

    1. 实现Interceptor 接口,实现initialize(),intercept(Event event),intercept(List events),close()

    2)intercept(Event event)书写逻辑,intercept(List events)调用intercept(Event event)方法

    3)创建静态内部类Builder ,实现Intercepter.Builder接口,实现build()方法返回当前类的实例

    输出路径

    /topic_log /gmall/log/topic_log/%Y-%m-%d

    /topic_order_leads/gmall/log/topic_order_leads/%Y-%m-%d

    业务数据采集

    同步策略

    每天全量:适用于数据量不大,每天既有新的数据插入,又有旧的数据修改的情况

    所有的维度数据

    增量:适用于数据量大,每天只有数据插入的表

    用户行为数据、客服对话、以及维度数据作为事实使用的时候

    新增及变化:适用于数据量大,每天有数据插入的表又有数据修改的表

    订单数据、留资数据通过调研,最晚变化时间高达200天,每次抽取200天的全量数据

    stg 层 201天数据 -> 动态分区覆盖到 ods层 -> 拆分单事物事实表和累计快照事实表 -> 数据汇总 - > 数据应用

    Datax参数和使用细节

    1.datax导入导出是通过json配置文件控制的

    job
    	content
    		reader
    		writer
    	setting
    		speed
    

    2.HFDS Writer并未提供nullFormat参数,后期将DataX同步的文件导入Hive表就会出现问题,所有需要Hive中建表时指定null值存储格式为空字符串(‘’)

    3.DataX传参,在JSON配置文件中使用${param}引用参数,在提交任务时使用-p"-Dparam=value"传入参数值

    4.为了防止OOM等错误,需调大JVM的堆内存,建议将内存设置为4G或者8G,这个也可以根据实际情况来调整

    输出路径

    /origin_data/gmall/db/表名称/日期

    三、数据仓库建模

    数仓实施流程

    1.数据调研

    业务调研 对现有业务划分业务模块,弄清每个业务的业务流程

    需求分析 1.与分析师、公司运营人员的沟通获知需求 2.对现有的报表系统研究分析

    2.数据域划分

    数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。

    别克商城数据域划分

    数据域
    数据域业务过程
    商品域发布、上架、下架、库存
    会员和经销商域注册、登录、上线、下线
    交易域下单、支付、退款、核销、申领、审核通过、审核不通过
    线索域留资、下发、跟进、生成意向、(进店)、成交
    流量域浏览、点击、停留
    客服域会员咨询、客服答复、会员评分
    经销商活动域发布、上架、下架
    总部活动域分享、签到、订阅通知、兑换礼品、生成订单、申领权益、权益审核通过、权益审核不通过
    区域活动域发布、活动开始、活动结束、活动报名

    3.构建总线矩阵

    确定业务过程数据属于哪个数据域,明确业务过程与维度的关系

    交易域

    数据域 业务过程一致性维度
    时间页面操作者 (经销商)商品商品类型预约经销商支付方式终端父订单来源
    下单
    支付
    核销

    流量域

    数据域 业务过程一致性维度
    时间地区页面操作者 (经销商)商品车型来源终端上一级 页面页面页面点位页面点位 跳转页面
    浏览
    点击
    停留

    4.明细模型设计

    DIM层

    DWD层

    5.汇总模型设计

    DWS层

    ADS层

    6.代码开发,业务逻辑处理

    7.部署运维

    数仓分层

    数据仓库分层

    ODS 原始数据层,保持数据原貌,起到数据备份的作用

    DIM 一致性维度层 维度是用来分析事实所需要的多样环境,维度的列称为维度属性,维度属性是查询约束条件、分组和报表标签生成的基本来源。维度属性一方面是现实实体的属性,另一方面是事实中沉淀出来的,比如订单里的支付类型。

    DWD 明细数据层 对ODS层的数据进行数据清洗(去空值,脏数据,不合理的数据,手机号身份证号等脱敏),粒度一般是一个业务动作,最细粒度

    DWS 以DWD为基础,进行轻度汇总,DWS是这个汇总层的统称,可以汇总多次,但最多不要超过三层。

    ADS 以DWS和DWD为基础,进行指标分析,为各种统计报表提供数据。一般的开发流程,可能会直接DWD层获取数据,后期把公共逻辑抽取到DWS层。

    分层原因

    1)减少重复开发和重复计算,可以复用每一层的结果

    2)将复杂的问题通过每一层的拆分变得简单

    3)排查定位问题变得简单,有利于后期维护

    4)对数据进行有序和有结构的分类组织和存储,避免数据不一致性,保证数据的规范

    建模理论

    OLTP和OLAP的区别

    OLTP 英文全称On-Line Transaction Processing

    主要数据操作的随机读写,采用3NF的关系模型存储数据,对数据的实时性要求比较高

    解决了数据的一致性和数据冗余问题

    OLAP 英文全称On-Line Analysis Processing

    主要是批量读写,关注数据的整合和大批量数据处理,对数据实时性要求不高

    采用维度建模,允许数据冗余

    三范式

    一范式: 属性不可分

    二范式:消除部分函数依赖

    三范式:消除传递函数依赖

    关系建模和维度建模

    关系建模遵循三范式,尽量将表进行拆分细化,降低数据的冗余。

    维度建模不遵循三范式,要对关系建模的表进行维度退化,减少表与表之间join的次数。维度建模有星型模型,雪花模型,星座模型。星型模型事实表的周围只有一层维度表,雪花模型事实表周围的维度表有多层。在有多个事实表的情况下就会呈现星座模型。

    维度表设计

    基本概念

    对事实的表述信息,每张表是现实世界的一类事物集合或概念。比如用户,商品,活动,日期,地区等

    维度是用来分析事实所需要的多样环境,维度的列称为维度属性,维度属性是查询约束条件、分组和报表标签生成的基本来源。维度属性一方面是现实实体的属性,另一方面是事实中沉淀出来的,比如订单里的支付类型。

    维度表行数较少,信息较多,内容相对固定

    维度设计的基本流程
    1. 选择维度或者新建维度

    2. 确定主维表。主维表一般是ODS层的表,直接与业务系统同步。

    3. 确定相关维表。这一步也可以称为维度退化,把相关维表的重要维度属性退化到主维表中,减少join

    4. 确定维度属性。第一阶段是从主维表中选择或者生成属性,第二阶段是从选择或者生成维度属性。

      确定维度属性需要注意的点:

      • 维度属性尽可能丰富
      • 维度属性应该有丰富的文字性描述,不应该是编码
      • 区分数值型的属性和事实(参与度量计算是事实,是查询的约束条件或者区间分组统计是唯独属性)
      • 尽可能沉淀出通用的维度属性,提高下游易用性,同时避免下游使用解析加公由于逻辑不同而导致数据差异。

    事实表设计

    事实表特性

    事实表的每行代表一个业务事件(下单、支付、退款、评价等),这业务细节程度被称为粒度。

    粒度通常可以有两种方式表述,一种是所表示的具体业务含义,一种是维度属性组合所表示的细节程度。

    “事实”就这个业务事件的度量值,(次数,个数,件数,金额)有可加(订单金额),半可加(库存),不可加(比率型、UV)三种类型。

    事实表数据量大,列数少,每天数据主要新增来源

    维度属性可以储存到事实表中,存到事实表中的维度称为退化维度,但退化维度不能太多,维度属性变化需要进行数据回溯(数据重跑)

    事实表类型

    根据不同业务的需要,把事实表分为三种类型:事物事实表、周期快照事实表和累计快照事实表。

    事物事实表用来表述业务过程,跟踪空间或时间点的度量事件,保存原子数据。

    周期快照事实表以具有规律性的、可预见的时间间隔记录事实,如每天、每月、每年等。周期快照事实表总是和事物事实表成对出现。

    累计快照事实表用来描述过程开始的结束之间的关键步骤状态,覆盖过程的整个生命周期,记录会随着过程的变化而修改。比如订单累计快照事实表的下单时间,付款时间,发货时间,签收时间,确认收货时间等。

    事实表设计方法
    1. 选择业务过程和确定事实表类型

      如果是单业务过程,就选择单事物事实表

      如果是多个业务过程,并且之间没有联系维度有相同,选择多事物事实表

      如果是多个业务过程,并且之间是转化关系,就选者累计快照事实表。

    2. 声明粒度

      尽量选择最细级别的原子粒度

    3. 确定维度

      确定维度表和事实表中的维度属性(比如支付方式)

    4. 确定事实

      选择与业务过程有关的事实,粒度要与声明的事实表的粒度保持一致。比率型的不可加事实要分解为可加事实

    四、数仓搭建

    ODS层

    把datax和flume导入到hdfs上的数据用load data inpath ‘xxx’ into table xxx partition(dt=‘xxx’)导入到相关的表中

    DWD层

    DWD层解析日志,合并PC、WAP和小程序的日志

    构建一致性维度和事实

    维度表

    有商品维度表、经销商维度表、会员维度表、渠道维度表、地区维度表、时间维度表

    事实表

    事务型事实表:浏览事实表,点击事实表,停留事实表,登录事实表,曝光事实表 ,支付事实表,留资事实表,生成意向事实表

    周期快照事实表:访客每日点击,访客每日浏览,用户每日登录,店铺商品每日库存快照,周月累计UV,PV,日活

    累积性快照事实表:订单事实表,留资事实表

    订单事实表和留资事实表细节

    根据业务调研,200天是订单和留资从产生到消亡的最大时间,每天都抽取201天的全量数据

    用datax抽取201天的数据放在stg层,使用动态分区把200前的数据按天归档,200天后的数据放在比如9999-99-99的分区里的ods层,然后在dwd层构建累积性快照事实表,依旧把200天的数据放在一个分区里。dws层每天覆盖200天的数据分区数据。

    DWS层

    DWS层的表就是维度表加事实表的度量值按小时、天、周、月统计

    比如访客每日点击次数,PV;会员每日登录次数,下单次数,付款金额,在线时长

    粒度一般是多个维度的维度组合,更多的时候是从ads层的业务逻辑下沉淀抽取下来的

    ADS层指标分析

    流量和用户域

    PVUV

    分渠道每天,周累计,月累计PV,UV

    分经销商店铺PV,UV

    分商品PVUV

    活跃用户数

    登录并且访问深度大于等于2的用户,每日分渠道活跃用户数汇总,周累计,月累计活跃用户数

    重复活跃用户数

    本月用户活跃天数大于2的用户,当天重复活跃用户数,周累计重复活跃用户数,月累计重复活跃用户数

    连续活跃用户数:

    连续n天活跃的用户,1,2,3,4,5 ,>5

    **每日新增设备:**注册时间为当天的用户

    沉默用户数:只在安装当天启动过,且启动时间是在7天前

    首次登录时间等于末次登录时间,并且首次登录时间在七天前

    本周回流用户:上周未活跃,本周活跃的设备,且不是本周新增设备

    末次登录时间在本周并且首次活跃时间不在本周

    流失用户数:最近7天未活跃的设备

    末次活跃时间小于date_add(“”,-7)

    最近连续三周活跃用户数:

    查本周,前一周,前两周活跃设备的mid union all 一块

    按mid分组having count(*)=3

    最近七天连续三天活跃

    把日期用rank()over 开窗,把开窗的值与日期相减,按日期分组后count(*)>=3

    交易域

    漏斗分析:统计“浏览->购物车->下单->支付”的转化率

    每日下单量,付款量,退款量,核销量

    分渠道订单量

    每天、周累计、月累计分渠道订单量

    商品主题

    销量排名:order by 商品不会太多,可以用order by

    收藏排名:

    商品加入购物车排名:

    商品差评排名:

    商品差评率:差评数/总评价数

    五、DolphinScheduler任务调度

    调度步骤

    1.登录普通账户

    2.向DolphinScheduler资源中心上传工作流所需脚本

    3.向DolphinScheduler的WorkerServer节点分发脚本依赖的组件

    4.修改DolphinScheduler环境变量配置文件并分发

    5.在对应项目下创建工作流并连线(依赖)

    6.上线工作流

    7.执行测试工作流

    8.设置定时任务

    参数

    局部参数、全局参数、系统内置参数

    自定义日期格式

    $[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]

    更多相关内容
  • 电商数据分析报告.pdf

    2020-08-14 20:40:05
    电商平台需要获取数据、进行数据分析、及其对业务的作用。本文分为四个部分:背景、思路、过程、结论,是对数据分析应用的一个实际的案例。
  • 爬取电商平台数据,python爬取某维商品数据 课程亮点 动态数据抓包演示 json数据解析 requests模块的使用 保存csv 环境介绍 python 3.8 [最好用和老师一样的版本] pycharm 2021.2 专业版 yyds requests >>&...

    本次内容:

    爬取电商平台数据,python爬取某维商品数据

    课程亮点

    1. 动态数据抓包演示
    2. json数据解析
    3. requests模块的使用
    4. 保存csv

    环境介绍

    • python 3.8 [最好用和老师一样的版本]
    • pycharm 2021.2 专业版 yyds
    • requests >>> pip install requests
    • csv

    安装方法:

    win + R 输入cmd 输入安装命令 pip install 模块名

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

    相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以私我领取哦~

    思路流程: (爬虫最基本流程)

    一. 数据来源分析

    分析我们想要的数据 可以从哪里获取
    请添加图片描述

    1. 通过开发者工具分析可得 一页商品 120条数据 他分为三组内容 50 50 20

    2. 每个url地址需要的商品ID 前50个ID为一组 中间50个ID为一组 最后20个ID为一组
      在这里插入图片描述

    3. 去分析 我们商品ID从哪里来的…

    如果想要通过爬取获取这些数据

    1. 首先获取所有商品ID
    2. 进行分组分类(切片) 前50 中50 后20
    3. 把这些传入 商品数据包里面 就可以得到 商品数据

    二. 代码实现步骤

    1. 发送请求, 对于ID的网址发送你请求
    2. 获取数据, 获取服务器返回的数据内容
    3. 解析数据, 提取我们想要商品ID
    4. 发送请求, 把商品ID传入 商品数据包url里面
    5. 获取数据, 获取服务器返回的数据内容
    6. 解析数据, 提取我们想要商品数据信息
    7. 保存数据, 把数据保存csv表格文件
    8. 多页爬取
    9. 查看结果

    爬虫 [模拟]浏览器对于服务器发送请求

    首先导入模块

    # 导入数据请求模块
    import requests  # pip install requests 在cmd里面或者pycharm终端里面安装
    # 导入格式化输出模块
    import pprint
    # 导入csv模块
    import csv
    # 导入时间模块
    import time
    

    后续代码

    # 创建一个csv文件
    f = open('口红data.csv', mode='a', encoding='utf-8', newline='')
    # 调用csv方法
    csv_writer = csv.DictWriter(f, fieldnames=[
        '标题',
        '品牌',
        '原价',
        '折扣',
        '售价',
        '属性',
        '详情页',
    ])
    csv_writer.writeheader()
    
    
    headers = {
        # 'cookie': 'vip_cps_cuid=CU1641815302342da2eee44221f3c0d4; vip_cps_cid=1641815302345_f63fc9087855c60e21a2950b0189ec24; cps_share=cps_share; vip_wh=VIP_NH; cps=adp%3Antq8exyc%3A%40_%401641815302344%3Amig_code%3A4f6b50bf15bfa39639d85f5f1e15b10f%3Aac014miuvl0000b5sq8cx6g534o9fx83; PAPVisitorId=8d9d410e1944339b815ec911aa7f9714; vip_new_old_user=1; vip_address=%257B%2522pname%2522%253A%2522%255Cu5e7f%255Cu4e1c%255Cu7701%2522%252C%2522pid%2522%253A%2522104104%2522%252C%2522cname%2522%253A%2522%255Cu5e7f%255Cu5dde%255Cu5e02%2522%252C%2522cid%2522%253A%2522104104101%2522%257D; vip_province=104104; vip_province_name=%E5%B9%BF%E4%B8%9C%E7%9C%81; vip_city_name=%E5%B9%BF%E5%B7%9E%E5%B8%82; vip_city_code=104104101; user_class=a; mst_area_code=104104; mars_sid=da8baa5d8a2c73dba298da602ff87292; mars_pid=0; visit_id=A7C92212D3DF003A212EB6666C36D2C3; VipUINFO=luc%3Aa%7Csuc%3Aa%7Cbct%3Ac_new%7Chct%3Ac_new%7Cbdts%3A0%7Cbcts%3A0%7Ckfts%3A0%7Cc10%3A0%7Crcabt%3A0%7Cp2%3A0%7Cp3%3A1%7Cp4%3A0%7Cp5%3A0%7Cul%3A3105; vip_access_times=%7B%22list%22%3A2%7D; pg_session_no=7; vip_tracker_source_from=; mars_cid=1641815303238_957cedc5b831e57207fd8334dcd97297',
        'referer': 'https://category.vip.com/',  # referer 防盗链 告诉服务器我们的请求的url地址 是从哪里跳转过来的
        # user-agent 用户代理 浏览器基本身份标识
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
    }
    
    
    def get_shop_info(shop_id):
        """获取商品数据信息"""
        shop_url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2'
        # 批量替换 选择要替换的内容 ctrl + R  输入 正则表达式命令
        data = {
            # 'callback': 'getMerchandiseDroplets1',
            'app_name': 'shop_pc',
            'app_version': '4.0',
            'warehouse': 'VIP_NH',
            'fdc_area_id': '104104101',
            'client': 'pc',
            'mobile_platform': '1',
            'province_id': '104104',
            'api_key': '70f71280d5d547b2a7bb370a529aeea1',
            'user_id': '',
            'mars_cid': '1641815303238_957cedc5b831e57207fd8334dcd97297',
            'wap_consumer': 'a',
            'productIds': shop_id,
            'scene': 'search',
            'standby_id': 'nature',
            'extParams': '{"stdSizeVids":"","preheatTipsVer":"3","couponVer":"v2","exclusivePrice":"1","iconSpec":"2x","ic2label":1}',
            'context': '',
            '_': '1641816680425',
        }
        response = requests.get(url=shop_url, params=data, headers=headers)
        # print(response.json())
        # pprint.pprint(response.json())
        products = response.json()['data']['products']
        for i in products:
            # pprint.pprint(i)
            # 创建一个字典 把数据内容传入字典
            shop_attrs_list = [j['name'] + ':' + j['value'] for j in i['attrs']]
            shop_attrs = ','.join(shop_attrs_list)
            href = f'https://www.vipglobal.hk/detail-{i["brandId"]}-{i["productId"]}.html'
            # ['色系:红调', '妆感:水润', ]
            dit = {
                '标题': i['title'],
                '品牌': i['brandShowName'],
                '原价': i['price']['marketPrice'],
                '折扣': i['price']['mixPriceLabel'],
                '售价': i['price']['salePrice'],
                '属性': shop_attrs,
                '详情页': href
            }
            # print(shop_attrs)
            csv_writer.writerow(dit)
            print(dit)
    
    
    for page in range(0, 601, 120):
        time.sleep(1)
        # 1. 发送请求, 对于ID的网址发送你请求
        url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank'  # 确定url地址
        # 请求参数
        data = {
            # 'callback': 'getMerchandiseIds',
            'app_name': 'shop_pc',
            'app_version': '4.0',
            'warehouse': 'VIP_NH',
            'fdc_area_id': '104104101',
            'client': 'pc',
            'mobile_platform': '1',
            'province_id': '104104',
            'api_key': '70f71280d5d547b2a7bb370a529aeea1',
            'user_id': '',
            'mars_cid': '1641815303238_957cedc5b831e57207fd8334dcd97297',
            'wap_consumer': 'a',
            'standby_id': 'nature',
            'keyword': '口红',
            'lv3CatIds': '',
            'lv2CatIds': '',
            'lv1CatIds': '',
            'brandStoreSns': '',
            'props': '',
            'priceMin': '',
            'priceMax': '',
            'vipService': '',
            'sort': '0',
            'pageOffset': page,
            'channelId': '1',
            'gPlatform': 'PC',
            'batchSize': '120',
            '_': '1641816680423',
        }
        # 请求头 把python代码伪装成浏览器发送请求(模拟成浏览器发送请求)
        # 发送请求
        response = requests.get(url=url, params=data, headers=headers)
        # 打印response数据 <Response [903]> 服务器给特定状态码 你请求失败了
        # <Response [200]> 200请求成功
        # 获取响应体什么数据response.json() 获取响应json字典数据
        # 字典取值 根据冒号左边的内容 提取冒号右边的内容
        # products = response.json()['data']['products']
        # lis = [] # 创建一个空列表
        # for index in products:
        #     pid = index['pid']
        #     lis.append(pid) # 往列表里面添加元素
        #     # print(pid)
        # print(lis)
        pid_list = [index['pid'] for index in response.json()['data']['products']]
        # print(pid_list)
        # 切片 分为三组 前50 中间 50 最后 20
        # [起始:结束:步长]  不写起始默认是0 不写步长默认 1  不写结束默认到最后
        # split 字符串分割方法 strip 去除字符串左右两端空格
        # 用 , 把列表里面所有元素合并起来
        string_1 = ','.join(pid_list[:50])
        string_2 = ','.join(pid_list[50:100])
        string_3 = ','.join(pid_list[100:])
        # 把列表转成字符串 join
        # string_4 = ','.join(pid_list)
        get_shop_info(string_1)
        get_shop_info(string_2)
        get_shop_info(string_3)
    
    

    模块安装问题:

    如果安装python第三方模块:

    1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
    2. 在pycharm中点击Terminal(终端) 输入安装命令

    安装失败原因:
    失败一:

    pip 不是内部命令
    解决方法: 设置环境变量

    失败二: 出现大量报红 (read time out)

    解决方法: 因为是网络链接超时, 需要切换镜像源
    清华:https://pypi.tuna.tsinghua.edu.cn/simple
    阿里云:http://mirrors.aliyun.com/pypi/simple/
    中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
    华中理工大学:http://pypi.hustunique.com/
    山东理工大学:http://pypi.sdutlinux.org/
    豆瓣:http://pypi.douban.com/simple/
    例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

    失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入

    解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可)
    卸载一个就好或者你pycharm里面python解释器没有设置好


    如何配置pycharm里面的python解释器?

    1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
    2. 点击齿轮, 选择add
    3. 添加python安装路径

    pycharm如何安装插件?

    1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
    2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
    3. 选择相应的插件点击 install(安装) 即可
    4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

    好了,我的这篇文章写到这里就结束啦!

    有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

    喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

    展开全文
  • 接下来一步步给大家介绍怎样获取评论的数据来供我们分析,以天猫查找李子柒的螺蛳粉为例。第一,登录网站找到目标页面。登录天猫,搜索“李子柒螺蛳粉”,点击一款推荐商品进入详细页,见图1。第二,找到要爬取的...

    现在的电商平台的商品琳琅满目,咱们足不出户就可以淘到性价比很好的尖货。但是东西多了大家不免要比较一番,这个时候看看商品粉丝的评论就尤其重要。

    接下来一步步给大家介绍怎样获取评论的数据来供我们分析,以天猫查找李子柒的螺蛳粉为例。

    第一,登录网站找到目标页面。

    登录天猫,搜索“李子柒螺蛳粉”,点击一款推荐商品进入详细页,见图1。

    第二,找到要爬取的目标的数据项。

    点击F12进入开发者界面。前后翻阅几页评论文字后,会发现开发者界面Network标签页,下面出现了很多内容。认真观察一下,发现list开头的数据项就是包含的评论内容,见图2。

    仔细分析一下传入参数,发现主要变化的就是2个参数:currentPage(评论的页数)和callback(回调的标志)。评论的页数可以通过迭代来依次增加,回调标志没有实际意义,可以写死。

    这样,访问的URL地址就确定了。

    第三,写代码获取数据。

    接下来进而到了python的编程环节。

    首先是构造URL地址和参数。主要步骤包括了URL构造、Headers构造,然后就是requests.get获取数据,最后是re.findall提取数据和json.loads转化为json格式。以上就获取到了一页的评论数据。

    然后就是获取你赶兴趣的字段内容了。比如你关心评论粉丝的名字、评论时间、评论内容、商品类型等。

    最后把获取到了内容存储起来。获取到的数据像图4这样。

    一般来说为了模拟人登录真实一点,每个迭代程序最好设置间隔时间,比如这样:

    time.sleep(5)#

    休眠5秒。

    以上就完成了电商平台的用户评论数据获取,是不是很简单呢?

    6a510f898bad

    6a510f898bad

    6a510f898bad

    6a510f898bad

    关注公众号【科技爸遇到文艺妈】,头条号【科技爸】,了解更多干货好文。

    展开全文
  • 理解数据数据获取数据探索 数据清洗:一个数据分析项目大部分时间花在数据清洗上。 数据分析和可视化:对清洗后的数据进行分析,并且通过可视化展示出结果 结论和建议:对结果进行解读,得出有价值的结论且提出...
  • python电商数据预处理

    2021-09-25 00:21:02
    电商数据预处理 今天对电商数据进行了预处理,主要处理了 1. 提取2019年的订单数据 2. 处理业务流程不符的数据(支付时间早于下单时间、支付时长超过30分钟、订单金额小于0、支付金额小于0) 3. 处理渠道为空的数据...

    电商数据预处理

    今天对电商数据进行了预处理,主要处理了

    1. 提取2019年的订单数据
    2. 处理业务流程不符的数据(支付时间早于下单时间、支付时长超过30分钟、订单金额小于0、支付金额小于0)
    3. 处理渠道为空的数据(补充众数)
    4. 处理平台类型字段(去掉多余的空格,保持数据一致)
    5. 添加折扣字段,处理折扣大于1的字段(将支付金额修改为“订单金额*平均折扣”)

    数据在这里,有兴趣跟我一起做。(百度网盘
    链接:https://pan.baidu.com/s/1yprZr0sxzLLPPBy-ICCocg
    提取码:dmmo

    各字段说明:
    1.‘id’ 打酱油的索引
    2.‘orderID’ 订单id
    3. ‘userID’ 用户id
    4. ‘goodsID’ 商品id
    5. ‘orderAmount’ 订单价格
    6. ‘payment’ 实付价格
    7. ‘chanelID’ 渠道
    8. ‘platfromType’ 平台类型
    9. 'orderTime’下单时间
    10. 'payTime’支付时间
    11. ‘chargeback’ 是否退款

    废话不多说,直接上代码

    # 导入数据分析三大神器库
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    

    1.导入数据

    # 1.导入数据
    ds_df = pd.read_excel('data/某电商网站订单数据.xlsx') 
     #请你将路径换为自己放数据的路径
    

    1.1查看数据前五行

    ds_df.head() # 查看数据前五行
    

    在这里插入图片描述

    1.2属性等信息

    ds_df.info()
    

    在这里插入图片描述

    2.数据预处理

    2.1. 提取2019年的订单数据

    # 进行布尔索引
    df_19 = ds_df[ds_df.orderTime.dt.year==2019]
    len(df_19)
    

    在这里插入图片描述
    这里可知数据已经变少了,接下来我们就用这个新的df_19进行进一步处理

    2.2 处理业务流程不符的数据(支付时间早于下单时间、支付时长超过30分钟、订单金额小于0、支付金额小于0)

     # 过滤掉支付时间早于下单时间的订单
    df_19 = df_19[~(df_19.payTime<df_19.orderTime)] 
    
    # 过滤掉支付时长超过30分钟的订单
    df_19 = df_19[(df_19.payTime-df_19.orderTime)<pd.to_timedelta('0 days 00:30:00')] 
    # 过滤掉订单金额小于0、支付金额小于0的订单
    df_19 = df_19[(df_19.orderAmount>0) & (df_19.payment > 0)]
    len(df_19)
    
    

    2.3. 处理渠道为空的数据(补充众数)

    df_19.chanelID.isnull().any() # 判断是否有空值
    
    # 拿到chanelID的众数,这里得到的众数是一个对象,不能用于在直接填充
    chanel_mode = df_19.chanelID.mode()  
    # 填充空值(将上面的对象转换成字符串再填充)
    df_19.fillna(value={'chanelID':str(chanel_mode)},inplace=True)
    

    2.4. 处理平台类型字段(去掉多余的空格,保持数据一致)

    # 将所有字符转成小写
    df_19.platfromType = df_19.platfromType.str.lower()
    # 去掉多余的空格,保持数据一致
    df_19.platfromType = df_19.platfromType.str.replace(' ','')
    

    2.5. 添加折扣字段,处理折扣大于1的字段(将支付金额修改为“订单金额*平均折扣”)

    # 获取折扣正常订单
    temp = df_19[~((df_19.payment / df_19.orderAmount)>1)]
    # 计算正常订单的平均折扣
    mean_discount=(temp.payment / temp.orderAmount).mean()
    # 拿出异常折扣订单
    temp1 = df_19[(df_19.payment / df_19.orderAmount)>1]
    # 将异常的支付价格改正
    temp1['payment'] = np.round(temp1.orderAmount*mean_discount,2)
    temp1.set_index('id')
    temp1.index
    over_discount_index = temp1.index
    # 将df_19中的异常行用temp1的行来替换
    df_19.loc[over_discount_index] = temp1.loc[over_discount_index]
    
    

    到这里就完成了预处理,但是你发现索引并不好看,于是我将索引重置

    df_19.reset_index(drop=True,inplace=True)
    

    完成后效果是这样的。
    在这里插入图片描述
    想了解更多知识,欢迎移步到微信公众号
    扫码或搜索数据分析者

    在这里插入图片描述

    好了,创作不易,有帮助留下你的赞或小额打赏哦!

    展开全文
  • 电商数据分析Excel案例

    千次阅读 2021-07-04 17:42:02
    第三代电商:以消费者为中心,看懂数据,了解买家,不看销量,看利润,通过社会化媒体与买家对话 行业现状 电商大数据伴随着消费者和企业的行为实时产生,广泛分布在电子商务平台(淘宝,京东,拼多多)、社交媒体...
  • ├─02-电商行业与电商系统介绍.avi ├─02-网站流量日志获取方式介绍.mp4 ├─02-订单时间维度指标需求分析.avi ├─03-cube优化-聚合组.avi ├─03-kylin的优势以及数据流程图.avi ├─03-使用kettle生成日期维度...
  • 电商销售数据分析(Python)

    千次阅读 2022-04-04 09:42:29
    目录 1.背景 2.分析目标 3.数据准备 4.数据清洗 4.1查看是否含有缺失值 ...4.3数据整理 ...随着电商的不断发展,网上购物变...更多电商平台崛起,对于电商卖家来说增加的不只是人们越来越高的需求,还要面对更多强大...
  • 电商数据分析项目总结!

    千次阅读 2021-01-03 19:59:00
    ↑↑↑关注后"星标"Datawhale每日干货&每月组队学习,不错过Datawhale干货作者:牧小熊,华中农业大学,Datawhale原创作者订单数据作...
  • 5种电商数据的采集工具

    千次阅读 2021-05-18 15:05:05
    10种AI训练数据采集工具排行榜5种电商数据的采集工具1、目前常用的10种数据网站2、如何写Python爬虫:3、人生第一个 爬虫代码示例:另外: 5种电商数据的采集工具 如何收集AI训练数据,来实现数据分析、AI数据训练、...
  • hive实训项目之电商数据分析

    千次阅读 2022-01-13 20:27:19
    hive实训项目---------电商数据分析 题干: 某大型电商公司从后台服务器收集到30W条的日志用户行为数据,经过数据初步清洗得到数据如下表sale_user.zip,假如你是该公司一员开发工程师,需要你利用大数据集群为公司...
  • PyCharm是一种PythonIDE,由JetBrains打造,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,...因此,通过分析客户对电商平台店铺的评价,获取商品的质量,帮助用户快速获取商品的大量重要信息。...
  • Hi,大家好,今天给大家介绍一个大数据可视化项目,大家...今天要分享的是:基于大数据的电商数据可视化平台大数据大屏可视化系列:基于大数据的电商数据可视化平台可搭载任意自己想用的数据,动态效果不错项目源码: ...
  • Olist巴西电商数据分析 上篇指路:https://blog.csdn.net/jlycd/article/details/113887419 文章目录Olist巴西电商数据分析项目背景搭建数据分析架构数据分析商品维度销售维度总结与建议 项目背景 本项目是来自...
  • 老李给大家整了各行业的数据指标体系框架,帮助大家理清分析思路,上次分享了关于线下零售指标体系的文章,不少朋友觉得不过瘾,今天继续给大家带来电商行业的全指标体系详解!建议收藏! 下面我们详细解释其中...
  • 电商数据采集的10个经典方法

    千次阅读 2021-07-21 17:11:29
    那么电商数据采集的方法有哪些呢?我给大家分享一下,我爬虫的个人经验,我们在采集类似电商数据网站的时候会遇到什么技术问题,然后再根据这些问题给大家分享采集方案. 一、写爬虫采集网站之前: 为什么经常听到...
  • 本项目来源于github 电商平台数据仓库搭建 。该项目仅供个学习使用 项目为个人学习记录,项目代码及文件可访问 电商平台数据仓库搭建 获得。访问不了的同学也可以私信我。 2,项目流程设计 [外链图片转存失败,源站...
  • 电商数据分析

    万次阅读 多人点赞 2018-08-07 11:17:39
    电商数据分析 一、数据来源、分析目的和思路 1. 数据来源 为了做商品、用户购物行为分析,从阿里云天池搜索获取数据集: ...
  • 电商数据分析(一)

    千次阅读 2019-09-03 23:21:00
    1、零一--电商数据分析与实战 数据与业务结合。应用在电商的数据分析既要懂得分析也要懂得业务,甚至还要懂得平台 【思维】+【业务】+【工具】+【数据】 1、行业分析看:阿里和淘宝的运营指数 ...
  • 电商数据分析方法和指标整理

    万次阅读 多人点赞 2018-11-25 12:06:14
    对于电商行业来说,数据分析的核心公式是:销售额 = 流量*转化率*客单价。因此,分析可以从流量、转化率和客单价这三个维度进行: 1、流量 流量分析,可以从中发现用户访问网站的规律,并根据这些规律改进网站设计...
  • GA 电商数据分析实践课

    千次阅读 2018-04-12 10:04:41
    碰到这些异常,作为电商数据分析师的你需要查出导致异常数据的主要原因(或甚至更深层的原因)。但是,单单看常规报告中的数据,99% 的场景中是无法正确推理出导致异常的原因。所以你需要通过学习一套系统性的数据...
  • 项目总结24:海关179号(实时获取电商平台企业支付相关原始数据)开发流程和相关资料...-附件资源
  • 一、背景及目的从多维度对某平台2016年电商数据进行分析,总结销售规律,为来年销售计划做准备,指导之后的产品销售。二、理解数据三、提出分析思路四、数据清洗此部分请见我之前写的文章:电商数据分析之数据清洗...
  • 在不久前结束的东京奥运会女子10米气步枪赛场上,杨倩以251.8环破了奥运记录,代表中国拿下东京奥运会首金。她又与杨浩然一起,顶住压力拿下10米气枪混合团体赛金牌。在感受到强烈民族荣誉感...根据Statista的数据,201
  • 电商数据分析总结

    千次阅读 2019-09-27 13:09:08
    1. 数据分析第1步:提出问题 - 我们要分析哪些业务指标? 2. 数据分析第2步:理解数据 - 熟悉 Excel 的工作界面 - Excel各个字段表示什么含义? - Excel中有哪些数据类型? - 数据的基本操作 3. 数据...
  • 抖音API
  • 原标题:如何用代码爬抓电商数据(附淘宝API调用实例)欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习、问答、求职,一站式搞定!对商业智能BI、大数据分析挖掘、...
  • 电商数据分析之用户画像的构成

    千次阅读 2020-11-26 10:00:00
    1、用户画像之基本属性谈到用户画像,首当其冲的就是需要了解我们的用户基础属性。用来定位我们的商品受众群体,以便于我们去拉新、广告投放等方式更好的获取精准客户,也可以分析我们上新品时的受众...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,678
精华内容 32,271
关键字:

如何获取电商数据