作者:小安
公众号:小安驿站
版本:1.0.0
关注【小安驿站】公众号,获取更多实用工具和教程!
本工具可以将微信公众号文章链接批量转换为PDF文件,并自动进行优化处理,包括:
- 自动裁剪PDF边距,提高阅读体验
- 按公众号分类存储PDF文件
- 智能等待图片加载完成
- 网络异常时自动重试
- 批量处理:通过CSV文件导入多个微信公众号文章链接
- 自动保存:根据文章发布日期和标题自动生成文件名并保存为PDF
- 边距优化:自动裁剪PDF边距,保留合适的左右边距
- 图片加载:智能等待页面图片加载完成后再生成PDF
- 错误重试:网络不稳定时自动重试,提高成功率
- 日志记录:详细记录处理过程和结果
| 文件内容 | 下载pdf |
- Python 3.7+
- Playwright (用于网页渲染)
- pdfCropMargins (用于PDF边距裁剪)
- Ghostscript 或 Poppler (pdfCropMargins的依赖,其中Poppler提供pdftoppm工具)
-
克隆或下载项目代码
-
安装Python依赖包:
pip install -r requirements.txt-
安装系统依赖:
- 下载并安装 Ghostscript: https://www.ghostscript.com/download/gsdnld.html
- 下载并安装 Poppler: https://github.com/oschwartz10612/poppler-windows/releases/
- 将上述软件安装路径添加到系统环境变量PATH中
-
安装Playwright浏览器:
playwright install chromium-
克隆或下载项目代码
-
安装Python依赖包:
pip install -r requirements.txt- 安装系统依赖:
brew install ghostscript poppler卸载脚本
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
安装Homebrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"注意:在某些macOS版本上,GUI应用程序可能存在兼容性问题。如果遇到相关问题,建议使用命令行版本。
- 安装Playwright浏览器:
playwright install chromium-
克隆或下载项目代码
-
安装Python依赖包:
pip install -r requirements.txt- 安装系统依赖:
sudo apt-get update
sudo apt-get install ghostscript poppler-utils- 安装Playwright浏览器:
playwright install chromium创建一个CSV文件,包含以下字段:
- 公众号:文章来源公众号名称
- 标题:文章标题
- 链接:文章链接地址
- 日期:文章发布日期
示例格式:
公众号,标题,链接,日期
"小安驿站","2个全球流行儿歌网站,小孩的英语启蒙教材","https://mp.weixin.qq.com/s/HUZ53c52S-cztre74ra-PA","2025-10-15"
"小安驿站","3个超清NBA直播网站,全球赛事免费看","https://mp.weixin.qq.com/s/wDEpoA03B7d16fWb0hzyGQ","2025-10-10"
- 想自动收集文章链接,请借助
公众号链接收集器
使用以下命令运行脚本:
# 基本用法
python csv_links_to_pdf_playwright.py your_csv_file.csv
# 指定并发线程数(可选)
python csv_links_to_pdf_playwright.py your_csv_file.csv --max-workers 5使用以下命令启动图形界面版本:
python gui_app_custom.py在图形界面中,您可以:
- 通过浏览按钮选择CSV文件
- 设置并发线程数
- 点击"开始转换"按钮开始处理
- 在日志区域查看处理进度和结果
- 随时点击"停止"按钮中止处理
转换后的PDF文件会按公众号名称分类保存在相应文件夹中。
注意:GUI版本在某些操作系统版本上可能存在兼容性问题。如果遇到问题,请使用命令行版本。
示例运行结果:
2025-10-20 18:00:35,180 - INFO - 开始处理 小安驿站_2025-10-16.csv 2025-10-20 18:00:35,181 - INFO - 开始处理 2个任务,使用 3 个并发线程 2025-10-20 18:01:19,981 - INFO - 已保存为PDF: 小安驿站/2025-10-15_2个全球流行儿歌网站,小孩的英语启蒙教材.pdf 2025-10-20 18:01:19,981 - INFO - 已保存为PDF: 小安驿站/2025-10-10_3个超清NBA直播网站,全球赛事免费看.pdf 2025-10-20 18:01:20,004 - INFO - 处理完成。成功: 2, 失败: 0
该脚本用于将CSV文件中的微信公众号文章链接转换为PDF文件。
必需参数:
csv_file:CSV文件路径
可选参数:
--max-workers:并发线程数,默认为3
- 公众号:用于创建文件夹分类保存PDF
- 标题:作为PDF文件名的一部分
- 链接:微信公众号文章链接
- 日期:作为PDF文件名的一部分,建议使用YYYY-MM-DD格式
- 工具会在同目录下生成日志文件
pdf_processing.log,可以查看处理详情 - 对于需要人机验证的链接,工具会跳过处理
- 如果遇到PDF边距裁剪失败,请确认已正确安装Ghostscript或Poppler,并确保PATH环境变量包含了pdftoppm工具
- 工具默认使用无头模式(headless)运行浏览器,不会弹出浏览器窗口
- 如需处理大量文章,建议降低并发数以避免被网站限制
- 微信公众号有反爬虫机制,频繁抓取可能会被限制访问
- GUI版本在某些操作系统版本上可能存在兼容性问题,如遇到问题建议使用命令行版本
- 如果出现"signal only works in main thread"错误,请确认并发数设置为1
- 如果PDF边距裁剪失败,请检查是否安装了Ghostscript或Poppler
- 如果页面加载失败,可能是网络问题或目标网站反爬虫策略,可适当增加重试次数
在某些Python安装环境中,可能会遇到以下错误:
ModuleNotFoundError: No module named '_tkinter'
这表示Python环境中缺少Tkinter支持,解决方案如下:
- 确保已安装tcl-tk库:
brew install tcl-tk- 使用pyenv重新安装Python并启用Tkinter支持:
unset PYENV_VERSION && export LDFLAGS="-L$(brew --prefix tcl-tk)/lib" && export CPPFLAGS="-I$(brew --prefix tcl-tk)/include" && export PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" && export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$(brew --prefix tcl-tk)/include' --with-tcltk-libs='-L$(brew --prefix tcl-tk)/lib -ltcl -ltk'" && pyenv install --force 3.11.9- 设置为默认Python版本:
pyenv global 3.11.9运行以下命令验证Tkinter是否正确安装:
python -c "import tkinter; print('Tkinter is available')"图形界面版本提供了更友好的用户交互体验:
- 文件选择:通过浏览按钮选择CSV文件和输出目录
- 参数设置:通过滑块调整并发线程数(1-10个线程)
- 日志显示:实时显示处理进度和结果
- 操作按钮:
- 开始处理:启动转换任务
- 退出:关闭应用程序
GUI应用程序在以下情况下可能存在兼容性问题:
- 操作系统版本:GUI版本需要macOS 12.0.7或更高版本,较低版本可能存在兼容性问题
- Python环境:某些Python安装可能缺少GUI支持库
- 显示问题:在高分辨率屏幕上可能需要调整窗口大小
如果遇到GUI兼容性问题,建议使用命令行版本执行任务。
本工具仅供学习交流使用,请遵守相关法律法规,尊重知识产权。
关注【小安驿站】公众号,获取更多实用工具和教程!