Python中如何抓取now直播房间信息的API接口?

用了 fiddler 和 charles 都抓不到


Python中如何抓取now直播房间信息的API接口?
1 回复

要抓取NOW直播的房间信息,你需要分析其网页或APP的API请求。通常这类平台会通过JSON接口提供数据。这里是一个使用requests库抓取API的通用示例:

import requests
import json

def fetch_now_live_rooms():
    # 1. 找到目标API接口(需要自行分析网络请求)
    # 示例URL(非真实地址,仅作演示)
    api_url = "https://api.now.com/live/rooms"
    
    # 2. 设置请求头模拟浏览器访问
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
        "Referer": "https://now.com/live"
    }
    
    # 3. 发送GET请求
    try:
        response = requests.get(api_url, headers=headers, timeout=10)
        response.raise_for_status()  # 检查HTTP错误
        
        # 4. 解析JSON数据
        data = response.json()
        
        # 5. 提取房间信息(根据实际API结构调整)
        rooms = data.get("data", {}).get("rooms", [])
        
        for room in rooms:
            print(f"房间ID: {room.get('room_id')}")
            print(f"主播: {room.get('anchor_name')}")
            print(f"标题: {room.get('title')}")
            print(f"在线人数: {room.get('online_count')}")
            print("-" * 40)
            
        return rooms
        
    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")
        return []
    except json.JSONDecodeError:
        print("JSON解析失败")
        return []

if __name__ == "__main__":
    fetch_now_live_rooms()

关键步骤说明:

  1. 找到真实API:用浏览器开发者工具(F12)的Network标签监控XHR请求,查找包含房间数据的接口
  2. 处理反爬机制:可能需要添加CookieAuthorization等头部信息
  3. 分页处理:如果数据分页,需要循环请求带page参数的接口

实际使用时需要:

  • 替换为真实的API端点
  • 根据实际响应结构调整数据提取逻辑
  • 可能需要处理登录态或加密参数

建议先手动分析清楚接口规律再写代码。

回到顶部