SteamTradingSiteTracker:四平台价格追踪与挂刀比例行情监控,如何跑通自己的行情站
【免费下载链接】SteamTradingSiteTrackerSteam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Market items on buff.163.com, igxe.cn, c5game.com, youpin898.com and ecosteam.cn.项目地址: https://gitcode.com/GitHub_Trending/st/SteamTradingSiteTracker
SteamTradingSiteTracker 是一个 Steam 饰品挂刀比例行情监控项目:它持续追踪 BUFF、IGXE、C5、UUYP 四个平台上约 6 万个 CS2 与 DOTA2 饰品的挂单价格,并折算出相对 Steam Market 的挂刀比例。适合想做跨平台比价、或者需要自建行情数据管道的人用,仓库里带了完整的爬虫与调度代码,配合本地的 MongoDB 和 Redis 即可自己部署。
它到底能干什么
比哪个平台挂刀最划算:想知道同一件饰品在四个平台的挂刀比例各是多少,start_result_collector.py会为每个平台算出买入、卖出、成交三类比例,价格已按 Steam 5% 平台费加 10% 发行商费折回,直接挑比例最低的平台即可。
筛出值得跟的饰品:元数据爬虫会先按硬规则过滤,比例高于 1.64、单价低于 1 或成交量低的饰品直接跳过,让 6 万个饰品池里只留下有实际交易活跃度的部分,不用人工翻挂单表。
积累历史走势:持续运行后,每次更新都会写入 MongoDB,可以基于历史数据观察某个饰品挂刀比例随时间的变化,项目方也发布了历史价格快照供分析。
快速跑起来
git clone https://gitcode.com/GitHub_Trending/st/SteamTradingSiteTracker cd SteamTradingSiteTracker && pip install pymongo redis requests beautifulsoup4 numpy loguru retrying aiohttp- 把 scripts/database.py 里的
MONGODB_PORT和REDIS_PORT改成你本地的服务端口,Redis 需要启用 RedisJSON 扩展 - 在
scripts/secrets/下填好三个平台的 cookie,文件仓库里已经备好 - 启动元数据爬虫:
python scripts/start_meta_crawler.py - 启动任务调度器:
python scripts/start_task_mapper.py - 启动数据抓取器:
python scripts/start_data_fetcher.py - 启动结果收集器:
python scripts/start_result_collector.py
拆开看看里面怎么跑的
- scripts/start_meta_crawler.py:按价格排序爬取 BUFF 挂单索引,按价格和比例规则过滤后,逐个查出饰品在 Steam、IGXE、C5、UUYP 的 ID,写入
meta集合;超过 14 天没刷新的条目会被删除 - scripts/start_task_mapper.py:定期比对
meta与data集合,把需要更新的饰品生成任务放进 Redis,按weighted_ratio分三档排序、低比例饰品优先,空闲队列保持在 800 以内 - scripts/start_data_fetcher.py:4 个并发进程从 Redis 抢任务,单个任务先取 Steam 24 小时成交量,再取四个平台的挂单价格,最后取订单簿,每件饰品最多重试 80 次
- scripts/start_result_collector.py:每 10 秒轮询 Redis 里的完成任务,用 scripts/utils.py 的
calculate_after_fee把手续费折回价格,算出各平台的买入、卖出、成交比例后写回data集合
用好它的几个细节
- Cookie 格式:
scripts/secrets/下三个 cookie 文件必须分别包含session、C5Login、Bearer,否则start_meta_crawler.py启动时的 assert 会直接失败 - 并发控制:
start_data_fetcher.py里N_PROCESSES和TIMEOUT控制抓取进程数与单请求超时;代码注释明确说 Steam 订单接口限流最严,不要靠加大并发硬扛 - 请求节奏:scripts/utils.py 的
random_delay默认延迟 15~17 秒,元数据爬虫在单页失败时会把延迟拉到 300~360 秒,日志卡住属于正常现象 - 优先级调整:调度器按
weighted_ratio排序,值越小越优先;想让某个饰品优先更新,可以直接改它data集合里的weighted_ratio
容易踩的坑
- 遇到
start_meta_crawler.py启动就报错 → 先看scripts/secrets/下三个 cookie 文件是不是还是空模板,填自己的 cookie - 遇到
start_data_fetcher.py起来就退出 → scripts/utils.py 里开源版load_proxies()是占位桩、直接assert 0,需要自己改这个函数返回代理列表,抓取器才能跑 - 遇到
redis.json()报错或连接异常 → scripts/database.py 的 TaskList 依赖 RedisJSON 扩展,普通 Redis 不支持 - 遇到 Steam 订单数据频繁失败 → 这个接口限流最严,先降低
N_PROCESSES或加大重试间隔,而不是继续加并发
最后说两句
适合想自建行情监控数据源、或对特定饰品做更高频价格追踪的人;如果只是想看看行情,项目已经运行着线上站点,没必要自己部署,本仓库只包含数据管道,不含网页展示部分。挂刀比例只反映平台与 Steam 之间的短期价差关系,实际成交还受库存和需求波动影响,决策前自己再判断一下。
【免费下载链接】SteamTradingSiteTrackerSteam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Market items on buff.163.com, igxe.cn, c5game.com, youpin898.com and ecosteam.cn.项目地址: https://gitcode.com/GitHub_Trending/st/SteamTradingSiteTracker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考