#!/usr/bin/env python3
"""
最终调试 - 非无头模式
"""
import asyncio
from browser.browser import BrowserManager
from xiaohongshu.feeds import FeedsListAction
async def final_debug():
"""最终调试"""
print("="*60)
print("最终调试 - 非无头模式")
print("="*60)
# 使用非无头模式,可以看到浏览器
browser = BrowserManager(headless=False)
await browser.start()
try:
page = await browser.new_page()
print("\n1. 手动导航到探索页...")
await page.goto("https://www.xiaohongshu.com/explore", timeout=60000)
print(" ✓ 页面已加载")
print("\n2. 等待页面...")
await page.wait_for_load_state("load", timeout=60000)
print(" ✓ 基本加载完成")
print("\n3. 等待 JavaScript 执行...")
await asyncio.sleep(5)
print(" ✓ 等待完成")
print("\n4. 检查数据...")
result = await page.evaluate("""
() => {
const state = window.__INITIAL_STATE__;
if (!state) return { error: 'state不存在' };
if (!state.feed) return { error: 'feed不存在' };
if (!state.feed.feeds) return { error: 'feeds不存在' };
if (!state.feed.feeds._value) return { error: '_value不存在' };
return {
success: true,
count: state.feed.feeds._value.length,
firstTitle: state.feed.feeds._value[0]?.noteCard?.displayTitle
};
}
""")
print(f" 结果: {result}")
if result.get('success'):
print(f"\n✓ 成功!找到 {result['count']} 条 Feed")
print(f" 第一条: {result['firstTitle']}")
# 现在测试 FeedsListAction
print("\n5. 测试 FeedsListAction...")
action = FeedsListAction(page)
feeds = await action.get_feeds_list()
print(f" ✓ FeedsListAction 成功获取 {len(feeds)} 条")
else:
print(f"\n✗ 失败: {result.get('error')}")
print("\n按 Ctrl+C 关闭...")
await asyncio.sleep(30)
except KeyboardInterrupt:
print("\n用户中断")
except Exception as e:
print(f"\n✗ 错误: {e}")
import traceback
traceback.print_exc()
finally:
await browser.close()
print("\n" + "="*60)
if __name__ == "__main__":
asyncio.run(final_debug())