全栈开发

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()