CSGO手套武器箱直接卖还是开了再卖?

本文通过Python爬虫分析网易BUFF上的CSGO饰品价格,探讨手套武器箱是直接出售还是开箱更划算。计算表明,开箱期望收入低于成本,建议直接出售。
摘要由CSDN通过智能技术生成

一、背景

今日群友发文,“我有4个手套武器箱,是直接卖掉还是开了再卖?好兄弟们给给建议”

于是就想作为好兄弟利用Python计算一下开CSGO手套武器箱的期望收入来提提建议,顺便学习Python的数据爬取。

二、方法概述

1、选择国内的CSGO饰品交易平台网易BUFF,来统计今天的CSGO饰品价格情况
2、确定手套武器箱相关参数
3、确定收入期望计算公式,得到预期结果

1、网易BUFF的CSGO饰品数据

  在网页端,网易BUFF的CSGO饰品数据是基于HTML5的动态数据,实时传输更新。
截图时我的账号已经被暂时封禁了,总共被封了2个号,第一个号因为没有设置sleep,直接请求访问后估计是访问频率过快直接被封禁。这个号设置了2秒的sleep间隔,花了40来分钟读取了729页接近12w条饰品信息。
  其实一共完整执行了不到3次,所以占用了服务器资源大概36w条数据,但也是不太好的行为。
在这里插入图片描述

 非注册用户只能查看第一页数据,只有注册用户才能获得所有商品信息。所以需要比如像cookie、user-agent数据加入request中才能统计数据,所以这也导致了封号。

2、确定手套武器箱相关参数

  • 在网上查阅资料可以找到Python3.6版本以上关于requests_htlm的函数,用来获取对应url的数据
def getHTMLText(url):
    kv = {
   
        'cookie':'######',
        'user-agent': '#####'}
    try:
        r = requests.get(url, headers=kv, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""
  • 然后使用findall正则表达式查找需要的数据,比如我这边就是查找当前销售的CSGO饰品名称和最低价格。
 weapon_prices = re.findall(r'\"sell_min_price\"\: \"[\d\.]*\"', html)
 weapon_names = re.findall(r'\"name\"\: \".*?\"', html)
  • 之后就用strip、replace、split处理数据格式

3、确定收入期望计算公式,得到预期结果

  • 查阅CSGO官网计算各武器开出概率
0 0.00256 金色传说
1 0.00639 隐秘
2 0.03197 保密
3 0.15985 受限
4 0.79923 军规
  • 关于磨损度概率就按其在[0, 1]所占区间长度的比例计算
#手套箱概率
prob = [0.00256, 0.00639, 0.03197, 0.15985, 0.79923]
#磨损度
cost_len = 5
cost = ['薪新出厂', '略有磨损', '久经沙场', '跛损不堪', '战痕累累']
cost_value = [0.07, 0.08, 0.23, 0.07, 0.55 ]


  • 手套是一个很特殊的物品,唯一单车变跑车的机会。经过统计一共有83种手套在售卖,所以按简单的1/83来平均每一个手套的价格。

最终的计算公式为下列公式求和(有待考证正确性):
磨 损 度 概 率 ∗ 武 器 等 级 概 率 ∗ 武 器 市 场 价 格 ∗ S t a t T r a k 概 率 系 数 ∗

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值