| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- """
- 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()
|