纯 Python + requests + BeautifulSoup。
代码为公有领域(Public Domain),可自由使用、修改、fork。 本人已亲自在自己的数据上验证通过,但无法保证此代码在您看到时仍然可用。
| 数据类型 | 目标平台 | 输出文件 | 匹配字段 |
|---|---|---|---|
| 豆瓣图书 | Goodreads | goodreads_books.csv |
ISBN |
| 豆瓣影视 | Letterboxd | letterboxd_movies.csv |
IMDB ID |
默认情况下,输出标题和评论,不输出导演名:
- ISBN / IMDB ID 是唯一的可靠匹配字段;导演名因语言差异不参与匹配,默认不输出
- 评论默认输出,可用
--no-import-review关闭
# 安装
source .venv/bin/activate
# 测试模式(极小量,无延迟)
python3 cli.py --book --mode test
python3 cli.py --movie --mode test
# 有限测试(2 页,有延迟,导出 CSV)
python3 cli.py --book --mode limited
python3 cli.py --movie --mode limited
# 正式迁移
python3 cli.py --book
python3 cli.py --movie
# 两者同时执行
python3 cli.py --book --movie| 模式 | 说明 |
|---|---|
test |
1 页列表 + 1 条 ISBN/IMDB,无延迟,快速验证 |
limited |
2 页列表,有延迟,导出 CSV |
full(默认) |
全部数据 |
# 限制最大页数
python3 cli.py --book --pages 5
# 开启 HTML 调试转储(保存到 output/.work/html_dump/)
python3 cli.py --book --dump-html
# 从断点继续
python3 cli.py --book --resume
python3 cli.py --movie --resume
# 不输出评论(默认输出评论)
python3 cli.py --book --no-import-review
python3 cli.py --movie --no-import-review
# 覆盖 User-Agent
python3 cli.py --book --ua "自定义 UA"所有文件默认输出到 output/ 目录(由 .gitignore 忽略):
output/
├── goodreads_books.csv # Goodreads 可导入 CSV
├── goodreads_books.missing_isbn.csv # 缺失 ISBN 的书(需手动补全)
├── letterboxd_movies.csv # Letterboxd 可导入 CSV
└── letterboxd_movies.missing_imdb.csv # 缺失 IMDB ID 的影视(需手动补全)
Goodreads(图书): https://www.goodreads.com/review/import
Letterboxd(影视): https://letterboxd.com/import/
403 错误?
Cookie 已过期。请重新登录豆瓣并更新
.env。
程序中断了?
使用
--resume参数从断点继续。
豆瓣要求输入验证码?
Cookie 可能已过期,需更换新的。短时间内分批爬取可减少触发。