feat: 添加B站登录配置支持和视频笔记

- bilibili_extractor.py: 添加SESSDATA登录凭证支持
- 新增 bilibili_config.example 配置模板
- 更新 .gitignore: 排除虚拟环境和敏感配置文件
- 添加今日记忆 (2026-02-07.md)
- 新增B站视频笔记: Qwen3-TTS上新、时代真变了、用了几天Clawdbot
This commit is contained in:
OpenClaw Agent
2026-02-07 14:38:19 +08:00
parent 08f7c9f26c
commit f15c494d37
6 changed files with 170 additions and 4 deletions
+35 -4
View File
@@ -21,6 +21,7 @@ playwright install chromium
import asyncio
import json
import re
import importlib.util
from datetime import datetime
from pathlib import Path
@@ -32,8 +33,9 @@ from undetected_playwright import stealth_async
class BilibiliExtractor:
"""B站视频信息提取器"""
def __init__(self, headless=False):
def __init__(self, headless=False, sessdata=None):
self.headless = headless
self.sessdata = sessdata # B站登录凭证
self.playwright = None
self.browser = None
self.context = None
@@ -67,6 +69,20 @@ class BilibiliExtractor:
}
)
# 如果提供了 SESSDATA,添加到 Cookie
if self.sessdata:
await self.context.add_cookies([
{
'name': 'SESSDATA',
'value': self.sessdata,
'domain': '.bilibili.com',
'path': '/',
'httpOnly': True,
'secure': True,
}
])
print("✓ 已加载登录凭证 (SESSDATA)")
# 应用stealth模式(反检测)
await stealth_async(self.context)
@@ -522,12 +538,27 @@ class BilibiliExtractor:
async def main():
"""主函数"""
bvid = "BV11t64BJEDZ"
output_file = "/home/admin/.openclaw/workspace/notes/时代真变了glm4.7+playwright-cli-AI自主进行自动化测试.md"
bvid = "BV1MnFNz5EDL"
output_file = "/home/admin/.openclaw/workspace/notes/用了几天_Clawdbot_我最担心的事开始发生了.md"
# 尝试加载登录配置
sessdata = None
try:
import sys
config_path = Path(__file__).parent / 'bilibili_config.py'
if config_path.exists():
spec = importlib.util.spec_from_file_location("bilibili_config", config_path)
bilibili_config = importlib.util.module_from_spec(spec)
spec.loader.exec_module(bilibili_config)
sessdata = getattr(bilibili_config, 'SESSDATA', None)
if sessdata:
print("✓ 已加载登录配置")
except Exception as e:
print(f"⚠️ 加载登录配置失败: {e}")
# 创建提取器(True=无头模式,False=显示浏览器窗口)
# 无头模式更快,但如果遇到验证码可能无法处理
extractor = BilibiliExtractor(headless=True)
extractor = BilibiliExtractor(headless=True, sessdata=sessdata)
try:
await extractor.init_browser()