首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python获取网页快照信息,并保存快照信息至本地

python获取网页快照信息,并保存快照信息至本地

原创
作者头像
码农有梦
发布2025-08-06 11:08:52
发布2025-08-06 11:08:52
22800
代码可运行
举报
文章被收录于专栏:python专栏python专栏
运行总次数:0
代码可运行

一、实现步骤以及环境需求

1、环境需求

首先,确保你已经安装了Selenium库。如果尚未安装,可以通过以下命令进行安装:

代码语言:bash
复制
pip install selenium

此外,你还需要下载与浏览器版本匹配的浏览器驱动。例如,如果你使用的是Chrome浏览器,可以下载ChromeDriver。将下载的驱动文件路径添加到系统环境变量中,或者在代码中显式指定路径。

2、编写代码

以下是完整的Python代码示例:

代码语言:python
代码运行次数:0
运行
复制
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
import time

chrome_options = Options()
plugins_path = "/Users/usernmae/Desktop/json.la/4.11.1_0.crx"
chrome_options.add_extension(plugins_path)  # 添加插件
chrome_options.add_experimental_option("detach", True)  # 浏览器窗口在脚本运行完后保持打开
chrome_options.page_load_strategy = 'none'  # 不等待页面完全加载
chrome_options.add_argument("--headless")  # 无界面模式
chrome_options.add_argument(
    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36")
driver_path = '/usr/local/bin/chromedriver'  # 指定ChromeDriver的路径
service = Service(executable_path=driver_path)  # 初始化Service对象
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.maximize_window()
time.sleep(2)  # 等待插件加载完毕
# 打开网页
url = "https://sohu.mt0668.com"
driver.get(url)
# 防止页面加载不完全(具体可根据需要调整等待时间)
time.sleep(4)  
# 获取网页快照并保存为图片
driver.save_screenshot("test.png")
# 关闭浏览器
driver.quit()

二、核心代码说明

  • WebDriver初始化 通过webdriver.Chrome()创建一个Chrome浏览器实例。你可以根据需要替换为其他浏览器(如Firefox或Edge)。
  • 打开网页 使用driver.get(url)方法打开目标网页。该方法会等待页面完全加载后再继续执行后续代码。
  • 等待页面加载 由于现代网页通常包含大量动态内容(如JavaScript渲染),我们使用time.sleep()方法等待页面完全加载。如果需要更精确的控制,可以使用Selenium的WebDriverWait功能。
  • 保存快照 使用driver.save_screenshot(path)方法将当前网页截图并保存为PNG文件。
  • 资源清理 在操作完成后,调用driver.quit()关闭浏览器并释放资源。三、其他高阶说明1、 添加浏览器插件
代码语言:python
代码运行次数:0
运行
复制
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
plugins_path = "/Users/usernmae/Desktop/mt0668.com/4.11.1_0.crx"
chrome_options.add_extension(plugins_path)  # 添加插件

"""
示例说明
https://iqiyi.zc100.com.cn
https://zhihu.mt0668.com
https://qlive.mt0668.com
https://cctv.desh-software.com
https://mip.desh-software.com
"""

如以上代码我添加了广告屏蔽插件,添加广告屏蔽插件是为了屏蔽网页中一些乱七八糟的广告,具体插件可根据个人需求添加。

2、调整浏览器窗口大小

设置浏览器窗口最大化

代码语言:python
代码运行次数:0
运行
复制
driver.maximize_window()

当然也可以设置具体宽高,代码如下:

代码语言:python
代码运行次数:0
运行
复制
driver.set_window_size(1200, 800)  # 设置窗口大小为1200x800像素

3、无头模式

如果你不需要看到浏览器界面,可以使用无头模式(Headless Mode)来运行浏览器,这样可以节省资源并提高效率:

代码语言:python
代码运行次数:0
运行
复制
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')  # 启用无头模式
driver = webdriver.Chrome(service=service, options=options)

注意:部分站点可能无头模式,可能无法正常获取网页快照,需自己设置浏览器的UA

四、总结

       通过Python和Selenium,我们可以轻松实现网页快照的获取。无论是简单的静态网页还是复杂的动态网页,Selenium都能胜任。本文提供的代码示例和技巧可以帮助你快速上手,并根据实际需求进行扩展。如果你对自动化Web操作感兴趣,Selenium无疑是一个值得深入学习的工具。注意:本次教程基于MacOS系统实现,Windows系统可根据自己的具体路径实现。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、实现步骤以及环境需求
    • 1、环境需求
      • 2、编写代码
  • 二、核心代码说明
    • 2、调整浏览器窗口大小
    • 3、无头模式
  • 四、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档