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

一、背景介绍

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

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即可将网页保存为图片了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值