""" BUFF饰品平台 API - 饰品价格查询接口 API文档: /api/market/enterprise/items 功能: 查询饰品在售最低价格与求购最高价格 请求方式: GET 可用服务: 仅企业API 查询范围: 全站饰品 更新频率: include_sticker为0时,5分钟/次;include_sticker为1时,10分钟/次 请求限制: 100000次/月 """ import requests import json def get_market_items( token: str, game: str = "cs2", goods_id: str = None, include_sticker: int = 1 ) -> dict: """ 获取饰品在售最低价格与求购最高价格 Args: token: 企业API访问令牌 game: 游戏名称,默认 cs2 goods_id: 饰品ID,不指定则返回全站饰品(约2万个) include_sticker: 是否包含印花饰品,默认 1 Returns: API返回的JSON数据 """ base_url = "https://buff.163.com/api/market/enterprise/items" headers = { "Authorization": f"Bearer {token}", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Accept": "application/json" } params = { "game": game, "include_sticker": include_sticker } if goods_id: params["goods_id"] = goods_id try: print(f"请求URL: {base_url}") print(f"请求参数: {params}") response = requests.get( url=base_url, headers=headers, params=params, timeout=30 ) print(f"响应状态码: {response.status_code}") return response.json() except requests.exceptions.RequestException as e: print(f"请求错误: {e}") return {"error": str(e)} def main(): """主函数""" # 企业API Token TOKEN = "2ce4f8fd95194fe090d53b785056de0b" print("=" * 60) print("BUFF饰品价格查询 (企业API)") print("=" * 60) # 示例1: 查询单个饰品价格 print("\n【示例1: 查询单个饰品】") result1 = get_market_items( token=TOKEN, game="cs2", goods_id="33881", # AK-47 | 表面淬火 include_sticker=1 ) print("\n返回数据:") print(json.dumps(result1, ensure_ascii=False, indent=2)[:3000]) # 示例2: 查询全站饰品价格(注意:数据量很大,约2万个饰品) print("\n" + "=" * 60) print("【示例2: 查询全站饰品】") print("注意: 全站数据量约2万个饰品,这里只显示前1000字符") print("=" * 60) result2 = get_market_items( token=TOKEN, game="cs2", include_sticker=1 ) if isinstance(result2, dict) and "items" in result2: items_count = len(result2["items"]) print(f"\n获取到 {items_count} 个饰品价格信息") # 显示前5个饰品 print("\n前5个饰品:") for i, item in enumerate(result2["items"][:5], 1): print(f" {i}. {item.get('name', 'N/A')}") print(f" ID: {item.get('goods_id')}") print(f" 在售最低价: ¥{item.get('sell_min_price', 'N/A')}") print(f" 求购最高价: ¥{item.get('buy_max_price', 'N/A')}") print() else: print("\n返回数据:") print(json.dumps(result2, ensure_ascii=False, indent=2)[:2000]) if __name__ == "__main__": main()