文章
drssionpage 保存网页为pdf和png格式
pdf格式:
from DrissionPage import ChromiumPage, ChromiumOptions
import base64
# 创建浏览器页面对象
co = ChromiumOptions()
# co.headless() # 如需无头模式可取消注释
page = ChromiumPage(co)
# 访问目标页面
page.get('https://drissionpage.cn/')
# 等待页面加载完成
page.wait.doc_loaded()
# 调用 CDP 命令生成 PDF
result = page.run_cdp(
'Page.printToPDF',
landscape=False, # False=纵向, True=横向
displayHeaderFooter=False, # 是否显示页眉页脚
printBackground=True, # 是否打印背景色/背景图
preferCSSPageSize=True, # 优先使用 CSS 定义的页面尺寸
marginTop=0.4, # 上边距(英寸)
marginBottom=0.4, # 下边距
marginLeft=0.4, # 左边距
marginRight=0.4, # 右边距
paperWidth=8.27, # 纸张宽度(英寸),A4=8.27
paperHeight=11.69, # 纸张高度(英寸),A4=11.69
)
# 解码 base64 并写入文件
pdf_data = base64.b64decode(result['data'])
with open('output.pdf', 'wb') as f:
f.write(pdf_data)
print('PDF 已保存: output.pdf')
page.quit()png格式
from DrissionPage import ChromiumPage, ChromiumOptions
# 1. 配置浏览器
co = ChromiumOptions()
# 设置浏览器窗口大小,这决定了截图的宽度(例如 1920 宽)
# co.set_argument('--window-size=1920,1080')
# co.headless() # 如果需要无头模式可取消注释
page = ChromiumPage(co)
page.set.window.max()
# 2. 访问页面
page.get('https://huang.press')
page.wait.doc_loaded()
# 3. 保存为 PNG(核心:full_page=True)
# 如果不传 path,可以加 as_bytes='png' 获取图片的二进制数据
page.get_screenshot(path='full_page.png', full_page=True)
print('✅ 整个页面已保存为 full_page.png')
page.quit()