#!/usr/bin/env python3
"""
简化的 Feed 调试脚本
"""
import asyncio
import json
from browser.browser import BrowserManager
async def quick_test():
"""快速测试"""
print("快速 Feed 测试")
print("="*60)
browser = BrowserManager(headless=True) # 使用无头模式加快速度
await browser.start()
try:
page = await browser.new_page()
print("\n1. 访问小红书...")
await page.goto("https://www.xiaohongshu.com/explore", timeout=60000)
print("2. 等待页面...")
await asyncio.sleep(5)
print("3. 检查 __INITIAL_STATE__...")
result = await page.evaluate("""
() => {
if (typeof window.__INITIAL_STATE__ === 'undefined') {
return { error: '__INITIAL_STATE__ 不存在' };
}
const state = window.__INITIAL_STATE__;
// 检查各种可能的路径
const checks = {
'state存在': !!state,
'feed存在': !!state.feed,
'feed.feeds存在': !!(state.feed && state.feed.feeds),
'feed.feeds._value存在': !!(state.feed && state.feed.feeds && state.feed.feeds._value),
};
// 尝试获取数据
let feedsData = null;
let feedsCount = 0;
if (state.feed && state.feed.feeds && state.feed.feeds._value) {
feedsData = state.feed.feeds._value;
feedsCount = feedsData.length;
}
return {
checks,
feedsCount,
firstFeedKeys: feedsData && feedsData[0] ? Object.keys(feedsData[0]) : [],
stateKeys: Object.keys(state),
feedKeys: state.feed ? Object.keys(state.feed) : []
};
}
""")
print("\n结果:")
print(json.dumps(result, indent=2, ensure_ascii=False))
if result.get('feedsCount', 0) > 0:
print(f"\n✓ 成功!找到 {result['feedsCount']} 条 Feed")
else:
print("\n✗ 未找到 Feed 数据")
print("\n可能的原因:")
print(" 1. 页面结构已变化")
print(" 2. 需要更长的等待时间")
print(" 3. 数据路径不同")
finally:
await browser.close()
print("\n" + "="*60)
if __name__ == "__main__":
asyncio.run(quick_test())