python爬虫自动库DrissionPage保存网页快照mhtml/pdf/全局截图/打印机另存pdf

如何使用页面打印功能,另存为pdf

一、保存网页快照的三种方法

看如下代码,如下三种保存快照的方法,分别是保存pdf、保存mhtml文件、保存全局截图,的方法,具体看网页加载情况可以设置滚动到底部再进行如下操作等

python 复制代码
from DrissionPage import ChromiumPage
from urllib.parse import urlparse
browser = ChromiumPage()

url = "https://www.baidu.com/"
file_name = urlparse(url).netloc.split(':')[0].lstrip('www.')
browser.get(url)
browser.save(path="D:\\", name=file_name, as_pdf=True)
browser.save(path="D:\\", name=file_name, as_pdf=False)
browser.get_screenshot(path="D:\\", name=file_name, full_page=True) 
二、利用打印机保存pdf的方法
  • 常规步骤,一般我们在浏览器打开网页,然后鼠标右击检查,选择打印,会出现如下页面,然后我们选择另存为pdf,保存这么一个流程,那么dp如何实现这个流程,代码在文章末尾

  • 打印机保存pdf最终代码

    python 复制代码
    import json
    from DrissionPage import ChromiumPage, ChromiumOptions
    
    settings = {
        "recentDestinations": [{"id": "Save as PDF", "origin": "local", "account": ""}],
        "selectedDestinationId": "Save as PDF",
        "version": 2,  # 另存为pdf,1 是默认打印机
        "isHeaderFooterEnabled": True,  # 是否勾选页眉和页脚
        # "customMargins": {}, # "marginsType": 2,  # "scaling": 100, # 缩放  # "scalingType": 3, # "scalingTypePdf": 3,
        "isLandscapeEnabled": False,  # landscape横向,portrait 纵向,若不设置该参数,默认纵向
        "isCssBackgroundEnabled": True,  # 是否勾选背景图形
        "mediaSize": {"height_microns": 297000,  "name": "ISO_A4",  "width_microns": 210000, "custom_display_name": "A4 210 x 297 mm"},
    }
    co = ChromiumOptions()
    co.set_argument("--window-size=1920, 1080")
    co.set_pref('printing.print_preview_sticky_settings.appState', json.dumps(settings))
    co.set_pref('savefile.default_directory', r'D:\\')   # 修改为网页转PDF后要保存的路径
    co.set_argument('--kiosk-printing')  # 静默打印,无需用户点击打印页面的确定按钮
    print(co.preferences)
    browser = ChromiumPage(co)
    browser.get("https://www.baidu.com/")
    browser.run_js(f'document.title="{browser.title}";window.print();', timeout=6)  # 利用js修改网页的title,该title最终就是PDF文件名,利用js的window.print可以快速调出浏览器打印窗口,避免使用热键ctrl+P
  • 参考文章
    https://www.cnblogs.com/caroline2016/p/18348831
    https://shandianchengzi.blog.csdn.net/article/details/137883196

复制代码
  调用浏览器打印机,另存为pdf
  co.set_argument("--print-to-pdf")
  co.set_pref("download.prompt_for_download", False)
  co.set_pref('plugins.always_open_pdf_externally', False)
  co.set_pref('plugins.plugins_disabled', ["Chrome PDF Viewer"])
  co.set_pref('profile.default_content_settings.popups', 0)
  co.set_pref('directory_upgrade', True)
  co.set_argument('--enable-print-browser')
  browser.run_js("return window.print()", timeout=6)
  """
相关推荐
慧都小妮子18 小时前
Aspose.CAD for .NET 26.6 更新发布
pdf·.net·3d渲染·cad·pdf导出·ifc编辑
蝉蜕日记20 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
蓝创工坊Blue Foundry1 天前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle
Am-Chestnuts1 天前
AI长回答批量导出PDF与长图:多轮内容整理和免费Markdown备份
人工智能·pdf·aigc
zyplayer-doc1 天前
研发接口文档怎么长期维护:zyplayer-doc把API、Markdown和变更记录放进同一个知识库
大数据·数据库·人工智能·笔记·pdf·ocr
蜡台2 天前
uniapp pdf文件预览组件
pdf·uni-app·合同·pdfh5
Am-Chestnuts2 天前
【无标题】
pdf
王莎莎-MinerU2 天前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
一棵星2 天前
LibreOffice Word 转 PDF 报错 “source file could not be loaded” 完整解决方案
pdf·word
协享科技2 天前
AI 读 PDF 的 2026 选型:ChatPDF、PDF.ai、通义智文之外,更要看证据链
人工智能·pdf