selenium利用javascript进行自动打印网页为PDF

这篇具有很好参考价值的文章主要介绍了selenium利用javascript进行自动打印网页为PDF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

selenium爬取页面的时候有时需要保持页面为PDF格式 并且不能使用pdfkit 模块(有的网址限制必须浏览器打开)文章来源地址https://www.toymoban.com/news/detail-551414.html

思路步骤

  1. 一:导入模块
  2. 二:在初始化driver对象的时候设定,浏览器静默保存(即保存时不弹出另存为按钮)和默认保存位置
  3. 三:打开所需网页
  4. 四:调用js打开打印窗口
  5. 修改当前页面标题(因为保存文件名就是标题名)并静默下载

具体代码


import json
from selenium.webdriver.common.by import By
from seleniumwire import webdriver

chrome_options = webdriver.ChromeOptions()
settings = {
    "recentDestinations": [{
        "id": "Save as PDF",
        "origin": "local",
        "account": ""
    }],
    "selectedDestinationId": "Save as PDF",
    "version": 2,  # 另存为pdf,1 是默认打印机
    "isHeaderFooterEnabled": True,  # 是否勾选页眉和页脚
    # "customMargins": {},
    # "marginsType": 2,#边距(2是最小值、0是默认)
    # "scaling": 100, # 缩放比例  100 表示不缩放
    # "scalingType": 3,
    # "scalingTypePdf": 3,
    # "isLandscapeEnabled": True,  # 若不设置该参数,默认值为纵向
    "isCssBackgroundEnabled": True,
    "mediaSize": {
        "height_microns": 297000,
        "name": "ISO_A4",
        "width_microns": 210000,
        "custom_display_name": "A4"
    },
}
chrome_options.add_argument('--enable-print-browser')
# chrome_options.add_argument('--headless') #headless模式下,浏览器窗口不可见,应当可提高效率
save_path = r'C:\Users\Administrator\Desktop'
prefs = {
    'printing.print_preview_sticky_settings.appState': json.dumps(settings),
    'savefile.default_directory': save_path,
}

chrome_options.add_argument('--kiosk-printing')  # 静默打印,无需用户点击打印页面的确定按钮
chrome_options.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(chrome_options=chrome_options)  # 初始化浏览器

# 打开需要保持的网址并等待加载完成图片
driver.get('https://alifei04.cfp.cn/creative/vcg/800/version23/VCG41175510742.jpg')
driver.implicitly_wait(10)
element = driver.find_element(by=By.XPATH, value='/html/body/img')

# 调用js 保持PDF
save_file_name = 'test.pdf'
driver.execute_script(
    f'document.title="{save_file_name}";window.print();')  # 利用js修改网页的title,该title最终就是PDF文件名,利用js的window.print可以快速调出浏览器打印窗口,避免使用热键ctrl+P

input('*----')  # 可以做其他事情 但是不嫩立即qiut 否则关闭浏览器了后就不能下载了
driver.quit()

到了这里,关于selenium利用javascript进行自动打印网页为PDF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • selenium爬取网页内容,对网页内容进行点击

    selenium爬取网页内容,对网页内容进行点击

    所需要的库 首先明确所要爬取的网页,选择调用方法,增加无界面模式的无头参数,然后调用,获取网址,使页面放大,为最大化窗口 获取数据运用XPATH函数,将获取的数据作为item,运用XPATH函数获取,   模仿人点击下一页,运用 for语句,每10个一点,停留5秒 同样寻找下一

    2024年01月17日
    浏览(11)
  • selenium进行网页长截图,模块长截图

    使用selenium进行网页截图,本文使用方法皆为显式情境下调试,未涉及隐式(无界面)与协议(设备模拟)。 首先定义驱动driver 拼接图片涉及 from PIL import Image import numpy as np 首先是最基础的截图,界面截图与某一部件截图 以上方法只能截取当前页面的图片,那么当网页长度超

    2024年02月11日
    浏览(9)
  • javascript 实现自动定时刷新网页脚本

    javascript 实现自动定时刷新网页脚本

    利用脚本自动刷新页面模拟用户点击刷新页面(F5刷新),用于刷某些博客阅读量。 实现方法是把脚本写进控制台里面 废话不多说,看代码 把以上代码复制到控制台,然后回车就可以看到页面输入一个刷新时间就自动刷新页面了 如果要停止自动刷新页面的话,按F5刷一下当

    2024年02月12日
    浏览(12)
  • javascript实现网页背景音乐自动播放

    在HTML文档中添加一个标签,指定音乐文件路径和自动播放属性。 在JavaScript中获取该元素,设置其音量为0(静音)或一个合适的值。 在网页加载完毕后,调用元素的play()方法,开始播放音乐。 完整代码如下: 注意:自动播放可能会受到浏览器限制,需要用户允许浏览器自动

    2024年02月04日
    浏览(15)
  • Python 利用Selenium爬取嵌入网页的PDF(web embedded PDF)

    Python 利用Selenium爬取嵌入网页的PDF(web embedded PDF)

    在下载欧洲专利局Global Dossier中的专利审查文件时,想到可以利用Python批量下载,省去一些重复劳动的时间。以下载一篇美国专利(US2021036638A1)的审查档案为例,该专利的审查档案地址为:European Patent Register 初涉Python,本人是个纯纯的小白,爬虫也是看入门书籍了解到了皮毛

    2024年02月05日
    浏览(13)
  • JavaScript+Selenium自动化测试_selenium javascript版

    JavaScript+Selenium自动化测试_selenium javascript版

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月26日
    浏览(12)
  • 通过网址自动网页截图(Selenium实现)

    通过网址自动网页截图(Selenium实现)

      在自动化测试或者想要批量获取网页首页图片时,就需要一个脚本实现自动化网页截图,我们可以通过Selenium实现这个功能。 网页截图效果示例:

    2024年02月16日
    浏览(13)
  • 使用Selenium对网页元素进行定位的诸种方法!

    使用Selenium对网页元素进行定位的诸种方法!

    使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接。 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了,下面我们来了解一下如何在查找元素。 在上一篇的示例中,我们就演示了如何通过find_element_by_

    2024年04月10日
    浏览(10)
  • 【RPA开发】Selenium 实现网页自动化

    【RPA开发】Selenium 实现网页自动化

    开发时有时会遇到网页爬取限制的情况,那么此时可以通过 Selenium 来解决这个问题,因为 Selenium 是模拟浏览器执行网页爬取,相比 Request/API 操作更安全,服务器会完全认为是用户在用浏览器进行操作,如此可以实现网页自动化操作,由于 Selenium 是完全模拟浏览器操作,因此

    2023年04月25日
    浏览(23)
  • python爬虫篇:使用Selenium自动打开小说网页并自动浏览

    python爬虫篇:使用Selenium自动打开小说网页并自动浏览

    需求:python,pycharm,Selenium库,火狐或ie浏览器 文章目录 一、 自动打开小说网页并浏览 简单使用Selenium库,实现对浏览器的自动化操作 一、自动打开小说网页并浏览 方法:使用命令行下载或者在pycharm中下载 使用命令行下载:打开cmd终端,输入pip install selenium  在pycharm中下

    2024年02月10日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包