Python 将网页保存为图片(Chrome内核)

server/2024/10/19 11:38:18/

一、背景介绍

之前写过一篇将网页保存为图片的文章

C# 将网页保存为图片(利用WebBrowser)_c# webbrowser 把网页内容转换成图片-CSDN博客​​​​​​

这里有个弊端,C# WebBrowser使用的是IE内核,目前很多网站都不支持IE了,所以需要找新的方案替代。 

二、Python实现

在Python中,一个常见的选择是使用Selenium配合Pillow将网页保存为图片。

第1步:安装Python环境。

如未安装,请参考1.OpenCV 运行环境配置(Python)_python配置opencv-CSDN博客

第2步:安装必要的库。

如果你还没有安装它们,可以使用pip来安装:

打开windows命令行工具,输入以下命令:

pip install selenium pillow

第3步:下载ChromeDriver

使用Selenium需要一个WebDriver,比如ChromeDriver。你可以从这里下载与你的Chrome浏览器版本相匹配的ChromeDriver。

注意:下载的ChromeDriver需与使用的Chrome浏览器版本保持一致。

下载完后,报存到电脑任一目录即可,如:

第4步:编写代码将网页保存为图片

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from PIL import Image
import io# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--headless")  # 无头模式,不打开浏览器窗口
chrome_options.add_argument("--disable-gpu")# 指定ChromeDriver的路径
service = Service(executable_path='C:\\chromedriver-win64\\chromedriver.exe')# 创建WebDriver对象
driver = webdriver.Chrome(service=service, options=chrome_options)# 访问目标网页
driver.get('https://blog.csdn.net/a497785609')# 获取页面的实际高度和宽度
width = driver.execute_script("return document.documentElement.scrollWidth")
height = driver.execute_script("return document.documentElement.scrollHeight")# 设置窗口大小
driver.set_window_size(width, height)# 截图并保存
driver.save_screenshot('C:\\chromedriver-win64\\screenshot.png')# 使用Pillow处理图像(可选)
image = Image.open(io.BytesIO(driver.get_screenshot_as_png()))
image.show()# 关闭浏览器
driver.quit()

至此,使用Python+Chrome即可将网页保存为图片了。


http://www.ppmy.cn/server/133033.html

相关文章

jetson agx orin 的pytorch、torchvision安装

首先使用conda创建一个虚拟环境,python3.8,只能使用3.8,因为后面使用NVIDIA提供的torch包对py环境有要求。 使用 conda search cudatoolkit查看自己支持的cuda版本,我选的11.4 然后进入英伟达的torch网站 pytorch英伟达下载地址 …

时间序列预测模型之一文讲透 MA 模型

ARIMA 模型(自回归积分滑动平均模型)是时间序列分析中的一种广泛应用的模型,这个模型在各个领域发挥着巨大的作用,如股票市场的价格预测、经济中 GDP 增长率预测、供应链中销售量和库存需求预测、气象中气温和降水量的预测等等。为…

Python爬虫进阶:高效数据采集的艺术

在当今数据驱动的世界里,高效的网络爬虫技术已经成为每个数据科学家和后端工程师的必备技能。本文将深入探讨一些高级的Python爬虫技术,这些技术不仅能够大幅提升你的爬虫效率,还能帮助你应对各种复杂的爬虫场景。 1. 异步爬虫:协…

基于SpringBoot+Vue+uniapp微信小程序的宿舍报修系统的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

数据库系统原理——第三章 关系数据库标准语言SQL

文章目录 1.SQL的特点2.SQL的组成3SQL语句3.1数据库的基本操作3.2 基本表的定义、修改、删除3.3索引的建立与删除3.4数据更新3.5数据查询3.5.1单表查询3.5.2连接查询3.5.2.1内连接(INNER JOIN)3.5.2.2左连接(LEFT JOIN)3.5.2.3右连…

iOS IPA上传到App Store Connect的三种方案详解

引言 在iOS应用开发中,完成开发后的重要一步就是将IPA文件上传到App Store Connect以便进行测试或发布到App Store。无论是使用Xcode进行原生开发,还是通过uni-app、Flutter等跨平台工具生成的IPA文件,上传到App Store的流程都是类似的。苹果…

基于微信小程序的购物系统【附源码、文档】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

AWTK fscript 中的 widget 扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 ** widget 扩展函数 ** 1. 介绍 FScript 的 widget 扩展函数只能在 widget 的事件处理函数中使用,包括传统的 …