核心用法
Letterboxd Watchlist Scraper 是一款轻量级命令行工具,专用于抓取公开 Letterboxd 用户的观影清单(watchlist)。用户只需提供目标用户名,即可将清单中的电影标题和链接导出为 CSV 或 JSONL 格式,无需任何登录凭证。
使用方式
基础用法:
uv run scripts/scrape_watchlist.py <username> --out watchlist.csv
推荐稳健模式:
uv run scripts/scrape_watchlist.py <username> --out watchlist.jsonl --delay-ms 300 --timeout 30 --retries 2
输出格式支持 CSV(title,link)和 JSONL(每行一个对象),便于后续数据处理和集成。
技术实现
脚本通过分页爬取 /watchlist/page/<n>/ 页面,检测 data-target-link="/film/..." 属性定位电影条目,当遇到无电影条目的页面时自动停止。内置用户名格式验证([A-Za-z0-9_-]+)、默认 250ms 礼貌延迟、超时和重试机制,兼顾稳定性与对目标站点的友好性。
显著优点
- 零门槛使用:无需 Letterboxd 账号或 API 密钥,完全公开数据抓取
- 格式灵活:支持 CSV 和 JSONL 两种输出,适配不同工作流
- 稳健设计:内置重试、超时、礼貌延迟,降低请求失败率
- 轻量可扩展:Python 脚本易于自定义,如调整正则表达式适配页面变更
潜在缺点与局限性
- 数据完整性依赖页面结构:若 Letterboxd 更新 HTML 标记,需手动调整正则表达式
- 仅限公开清单:无法抓取私密 watchlist 或需要登录的内容
- 无元数据 enrichment:仅提取标题和链接,不含评分、年份、类型等详细信息
- 速率受限:内置延迟虽礼貌但限制大规模抓取效率
适合人群
- 需要备份或迁移 Letterboxd 观影清单的影迷
- 希望基于待看清单构建个性化推荐系统的开发者
- 数据分析师或研究者进行电影偏好相关研究
- 任何需要结构化电影清单数据的无代码/低代码用户
常规风险
- 服务条款合规:需确认抓取行为符合 Letterboxd Terms of Service
- IP 限制风险:虽设礼貌延迟,高频或批量抓取仍可能触发 rate limiting
- 数据隐私:仅抓取公开数据,但需尊重用户隐私设置,勿滥用他人清单数据
- 维护依赖:作为 best-effort 爬虫,长期可用性取决于目标站点稳定性
---
> 安全说明:此技能为系统占位简介,未执行深度安全扫描,建议实际部署前进行代码审计和合规性检查。