草庐IT

淘宝秒杀

全部标签

Python大数据-对淘宝用户的行为数据分析

目录一、项目背景二、项目目标     三、分析思路四、数据清洗1、读取查看数据的基本信息和数据的完整性2、一致化处理:3、查看是否有缺失值五、数据分析1、不同时间下PV、UV的流量变化情况 2、不同购物行为在不同时间维度下的变化情况用户转化行为漏斗模型分析 六、结论分析一、项目背景通过对2014年11月17日至2014年12月17日之间数据进行合并,获得该月用户的行为数据,数据量在一千万条左右。本次数据是在网上获取的来源于:数据集-阿里云天池,不在进行抓取或收集,大家可以看这篇文章Python爬虫-抓取数据到可视化全流程的实现,详细的写了数据抓取的过程使用的主要工具:python--jupyt

Selenium、cv2和pyautogui实现自动化登陆淘宝

安装seleniumcv2pyautogui直接win+R输入cmd打开窗口直接输入下面语法即可安装成功,其他两个库同理pipinstallselenium通用部分:先加载对应的谷歌浏览器,用selenium把目标网页打开,然后点开登陆页面进入页面可以定位到登陆地址发现是一个文本,可以通过find_elements()方法中的By.LINK_TEXT来定位含连接的文本元素,也可以通过CLASS_NAME来寻找元素,先进行成功登陆注意:此处我的版本是selenium4,不同版本语法不同,本人在此处因为不同版本selenium的语法不同导致定位不到元素,一定要找到对应版本,去查官方文档才是最准确的

Selenium、cv2和pyautogui实现自动化登陆淘宝

安装seleniumcv2pyautogui直接win+R输入cmd打开窗口直接输入下面语法即可安装成功,其他两个库同理pipinstallselenium通用部分:先加载对应的谷歌浏览器,用selenium把目标网页打开,然后点开登陆页面进入页面可以定位到登陆地址发现是一个文本,可以通过find_elements()方法中的By.LINK_TEXT来定位含连接的文本元素,也可以通过CLASS_NAME来寻找元素,先进行成功登陆注意:此处我的版本是selenium4,不同版本语法不同,本人在此处因为不同版本selenium的语法不同导致定位不到元素,一定要找到对应版本,去查官方文档才是最准确的

热点和秒杀来临前要做的5件事

记得当年《甄嬛传》热播,调用了我们团队的媒体资讯接口。接口被调用挂了。当时虽然我不负责那一块,只是目睹了当时大家在临场解决问题的紧张一幕。但是这件事在我心里埋下了种子,从此追求高可用、高稳定成为职业发展的方向。 今天咱们就来聊一聊热点和秒杀前要做的5件事。这5件事是按时间顺序排列出场。 应急演练 无论对一个软件系统运行原理掌握得多么彻底,也不能阻止人犯意外错误。--玛格丽特教授 应急演练可以定期举行。前提是对各种意外情况,提前准备好了预案。预案在演练过程中,可以发现系统问题、检验相关人员SOP/EOP的操作熟练情况。 举个例子:支付系统由于下游银行通道能力参差,需要制定关闭XX银行通道的SOP

热点和秒杀来临前要做的5件事

记得当年《甄嬛传》热播,调用了我们团队的媒体资讯接口。接口被调用挂了。当时虽然我不负责那一块,只是目睹了当时大家在临场解决问题的紧张一幕。但是这件事在我心里埋下了种子,从此追求高可用、高稳定成为职业发展的方向。 今天咱们就来聊一聊热点和秒杀前要做的5件事。这5件事是按时间顺序排列出场。 应急演练 无论对一个软件系统运行原理掌握得多么彻底,也不能阻止人犯意外错误。--玛格丽特教授 应急演练可以定期举行。前提是对各种意外情况,提前准备好了预案。预案在演练过程中,可以发现系统问题、检验相关人员SOP/EOP的操作熟练情况。 举个例子:支付系统由于下游银行通道能力参差,需要制定关闭XX银行通道的SOP

Redis+Lua实现简易的秒杀抢购

1  商品抢购主要逻辑是:减库存,记录抢购成功的用户@RestControllerpublicclassDemoController{@ResourceprivateStringRedisTemplatestringRedisTemplate;privatestaticfinalStringGOODS_STOCK_KEY="goods:001";//秒杀商品库存privatestaticfinalStringGOODS_USER_KEY="users:001";//抢购成功的用户列表/***在不加锁的情况下,会发生超卖*/@GetMapping("/seckill")publicStrings

Redis+Lua实现简易的秒杀抢购

1  商品抢购主要逻辑是:减库存,记录抢购成功的用户@RestControllerpublicclassDemoController{@ResourceprivateStringRedisTemplatestringRedisTemplate;privatestaticfinalStringGOODS_STOCK_KEY="goods:001";//秒杀商品库存privatestaticfinalStringGOODS_USER_KEY="users:001";//抢购成功的用户列表/***在不加锁的情况下,会发生超卖*/@GetMapping("/seckill")publicStrings

聊聊秒杀系统的设计(三)

前言秒杀请求在高度集中在某一个时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。能够抢到商品的人数是有限的,也就是说10人和1000人发起请求的结果都是一样的。也就是说真正开始下单时,秒杀请求并不是越多越好。一、秒杀中的削峰由于服务器的处理资源是恒定的,用或者不用它的处理能力都是一样的,出现峰值的话,很容易导致忙到处理不过来,闲的时候却又没有什么要处理。为了保证服务质量,很多处理资源只能按照忙时预估,而这会导致资源浪费。削峰可以让服务端处理变得更加平稳,还可以节省服务器的资源成本。针对秒杀这一场景,削峰从本质上来说就是更多地延缓用户请求的发出,以便减少和过滤掉一些无效请求

聊聊秒杀系统的设计(三)

前言秒杀请求在高度集中在某一个时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。能够抢到商品的人数是有限的,也就是说10人和1000人发起请求的结果都是一样的。也就是说真正开始下单时,秒杀请求并不是越多越好。一、秒杀中的削峰由于服务器的处理资源是恒定的,用或者不用它的处理能力都是一样的,出现峰值的话,很容易导致忙到处理不过来,闲的时候却又没有什么要处理。为了保证服务质量,很多处理资源只能按照忙时预估,而这会导致资源浪费。削峰可以让服务端处理变得更加平稳,还可以节省服务器的资源成本。针对秒杀这一场景,削峰从本质上来说就是更多地延缓用户请求的发出,以便减少和过滤掉一些无效请求

聊聊秒杀系统的设计(四)

前言如果你第一次接触秒杀,可能还不太理解,库存100件就卖100件,在数据库里减到0就好了,这有什么麻烦的?理论上是这样,但是具体到业务场景中就没那么简单了。今天就聊聊减库存的设计,之后以高可用方案来结束秒杀设计的全部内容。一、秒杀中的减库存减库存操作一般有如下几个方式:1.下单减库存:下单后,在商品的总库存中减去购买数量,下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。2.付款减库存:下单后,并不立即减库存,而是等到付款后才真正减库存,否则库存一直保留给其他买家,但因为付款时才减库存,如果并发比较高,有可能出现买家