""" 测试数据上报服务器 用于测试数据上报功能是否正常工作 使用方法: 1. 安装依赖: pip install flask 2. 运行服务器: python test_report_server.py 3. 在另一个终端运行爬虫: python main.py fetch-daren 4. 查看本服务器的输出,确认数据是否成功上报 """ from flask import Flask, request, jsonify from datetime import datetime import json app = Flask(__name__) # 用于统计接收到的数据 received_count = 0 @app.route('/api/Streamers/ReportStreamerData', methods=['POST']) def report_streamer_data(): """接收数据上报""" global received_count received_count += 1 # 获取查询参数 category = request.args.get('category', 'unknown') log_id = request.args.get('logId', 'unknown') # 获取POST数据 try: data = request.json if not data: return jsonify({ 'success': False, 'message': '无效的数据格式' }), 400 # 打印接收信息 print("\n" + "="*80) print(f"📥 [{received_count}] 收到数据上报") print("="*80) print(f"⏰ 时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print(f"📁 Category: {category}") print(f"🆔 LogId: {log_id}") # 打印元数据 if 'metadata' in data: metadata = data['metadata'] print(f"\n📊 元数据:") print(f" - 总数: {metadata.get('total', 0)}") print(f" - 创建时间: {metadata.get('created_at', 'N/A')}") print(f" - 来源: {metadata.get('source', 'N/A')}") # 打印数据统计 if 'data' in data: records = data['data'] print(f"\n📋 数据记录:") print(f" - 记录数: {len(records)}") # 显示前3条数据 if len(records) > 0: print(f"\n📝 前3条数据预览:") for i, record in enumerate(records[:3], 1): print(f"\n {i}. {record.get('anchorName', 'Unknown')}") print(f" Anchor ID: {record.get('anchorID', 'N/A')}") print(f" 粉丝数: {record.get('fans', '0')}") print(f" 直播状态: {record.get('liveStatus', 'N/A')}") print(f" User ID: {record.get('userID', 'N/A')}") # 统计直播中的达人 live_count = sum(1 for r in records if r.get('liveStatus') == '2') if live_count > 0: print(f"\n 🔴 正在直播: {live_count} 人") print("\n" + "="*80) print("✅ 数据上报成功") print("="*80 + "\n") # 返回成功响应 return jsonify({ 'success': True, 'message': '数据上报成功', 'received_count': received_count, 'timestamp': datetime.now().isoformat() }), 200 except Exception as e: print(f"\n❌ 处理数据时发生错误: {e}") return jsonify({ 'success': False, 'message': f'服务器错误: {str(e)}' }), 500 @app.route('/health', methods=['GET']) def health(): """健康检查接口""" return jsonify({ 'status': 'ok', 'message': '测试服务器运行正常', 'received_count': received_count }) @app.route('/', methods=['GET']) def index(): """首页""" return f""" 数据上报测试服务器

📡 数据上报测试服务器

✅ 服务器运行正常

状态信息

已接收数据: {received_count} 次

API地址: /api/Streamers/ReportStreamerData

健康检查: /health

使用方法

  1. 确保此服务器正在运行(端口8080)
  2. 配置爬虫的上报地址为: http://localhost:8080/api/Streamers/ReportStreamerData?category=commerce&logId={{logId}}
  3. 运行爬虫: python main.py fetch-daren
  4. 在终端查看上报详情

配置示例

# config/settings.py
REPORT_URL = "http://localhost:8080/api/Streamers/ReportStreamerData?category=commerce&logId={{logId}}"
        
""" if __name__ == '__main__': print("\n" + "="*80) print("🚀 数据上报测试服务器启动中...") print("="*80) print(f"📍 监听地址: http://localhost:8080") print(f"📡 API地址: http://localhost:8080/api/Streamers/ReportStreamerData") print(f"💚 健康检查: http://localhost:8080/health") print(f"🌐 首页: http://localhost:8080/") print("\n💡 提示:") print(" 1. 在浏览器打开 http://localhost:8080 查看状态") print(" 2. 运行爬虫测试数据上报") print(" 3. 按 Ctrl+C 停止服务器") print("="*80 + "\n") app.run(host='0.0.0.0', port=8080, debug=False)