提示信息

利用chromedriver,保存html为pdf文件

心灵家园 已关注

你可以利用Selenium和ChromeDriver来生成PDF文件。为了实现这个,你需要使用Chrome的Headless模式以及Chrome DevTools Protocol中的Page.printToPDF功能。

以下是一个Python示例,它会把一个网页保存为PDF:

  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.service import Service
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.chrome.options import Options
  5. from selenium.webdriver.common.action_chains import ActionChains
  6. from selenium.webdriver.common.keys import Keys
  7. from selenium.webdriver.support.ui import Select
  8. import time, json
  9. options = Options()
  10. # Enable headless mode
  11. options.add_argument("--headless")
  12. # Set path to chromedriver as per your configuration
  13. webdriver_service = Service('path/to/chromedriver')
  14. driver = webdriver.Chrome(service=webdriver_service, options=options)
  15. # Go to the page you want
  16. driver.get('http://www.google.com')
  17. time.sleep(2) # might need a pause if the site is slow
  18. # Enable the Chrome Devtools Protocol
  19. driver.execute_cdp_cmd("Page.enable", {})
  20. # Configure the Page to print to PDF
  21. params = {
  22. 'landscape': False,
  23. 'displayHeaderFooter': False,
  24. 'printBackground': True,
  25. 'preferCSSPageSize': True,
  26. }
  27. # Get the PDF data
  28. pdf = driver.execute_cdp_cmd("Page.printToPDF", params)
  29. # Save the PDF file
  30. with open('output.pdf', 'wb') as output_file:
  31. output_file.write(base64.b64decode(pdf['data']))
  32. driver.quit()

请注意,此脚本在运行时需要Python环境,并已安装selenium库。你也需要根据你的实际需要调整一些参数,例如chromedriver的路径,要转换为PDF的网页URL,以及PDF文件的存储位置。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
心灵家园 关注 已关注

最近一次登录:2024-10-26 07:29:26   

暂时还没有签名,请关注我或评论我的文章

懵懂心念
09月20日

利用Selenium和ChromeDriver生成PDF非常实用,尤其是在需要高质量打印网页内容的场合。

虚情假意
09月30日

代码示例清晰,不过初学者可能需要安装和配置ChromeDriver的相关指引。可以参考ChromeDriver官网

人去
10月10日

使用chrome的无头模式节省计算资源,对于自动化生成报告的任务非常合适。

一无所得
10月17日

利用selenium的这一技巧,可以方便地将动态生成的网页数据提取为PDF文档,便于后期分析保存。

煽情
10月22日

对网页截图转成PDF的需求很常见,该方法省去了手动操作,很好集成到自动化流程里。但需要注意chromedriver和chrome版本的兼容性,可在官方文档查找详细信息。

韦莫涵
11月02日

Page.printToPDF功能是基于Chromium的CDP协议,灵活性高,但若有复杂页面需求,需慎重调优参数。

韦兆坤
11月03日

这个示例非常实用,尤其是在需要将自己开发的网站生成报告给客户展示时。

悲酥.清风.电
11月13日

但注意网站的反爬机制和动态加载内容,它们可能需要额外处理,确保PDF完整性,可加入WebDriverWait来等待页面加载。

桥雨
11月24日

结合Selenium的其他功能,可以做一整套自动化的网站测试及报告生成工具,非常高效。

自娱
12月02日

整体思路不错,适合用作Selenium教程练习,建议初学者按照步骤先手动配置环境,确保每一步独立运行。在这个教程链接可以找到更多帮助。

×
免费图表工具,画流程图、架构图