PHP使用Browsershot进行网页截图

Browsershot是什么

在这里插入图片描述

Spatie Browsershot 是一个开源PHP库,它允许开发者在PHP应用程序中生成网页的截图。 这个库特别适用于Laravel框架,但也可以在其他 PHP 应用程序中使用。

主要特点

  • 无头浏览器截图:使用无头版本的 Chrome 或 Chromium 浏览器来捕获网页的截图,无需打开完整的浏览器界面。
  • 多种输出格式:支持生成 PNG、JPEG 以及 PDF 格式的文件。
  • 自定义选项:可以自定义截图的尺寸、缩放比例、用户代理、超时时间等。
  • 等待特定元素:可以设置等待页面上的某个元素出现或者等待一定时间后再进行截图。
  • JavaScript支持:能够等待页面上的 JavaScript 加载完成,确保动态内容被正确渲染。
  • 自定义HTML:不仅支持对在线网页进行截图,还可以对自定义的 HTML 字符串进行截图。
  • 错误处理:提供清晰的错误信息,帮助开发者快速定位问题。
  • 易于集成:通过 Composer 进行安装,易于集成到现有的 PHP 项目中。

安装

Spatie Browsershot 可以通过 Composer 进行安装:

composer require spatie/browsershot

使用

使用时,可以通过简单的门面方法调用:

use Spatie\Browsershot\Browsershot;Browsershot::url('https://www.baidu.com')->save('/path/to/save/baidu.png');

一些使用方法介绍

  1. url(string $url): 指定要截图的网页URL。
  2. save(string $filePath): 设置截图保存的路径。
  3. windowSize(int $width, int $height): 设置截图的宽度和高度。
  4. timeout(int $timeout): 设置超时时间,单位为秒。
  5. waitUntilNetworkIdle(bool $strict = true): 等待网络空闲,即所有请求都已完成。
  6. setChromePath(string $path): 设置Chrome或Chromium浏览器的可执行文件路径。

示例

use Spatie\Browsershot\Browsershot;Browsershot::url('https://www.baidu.com')->windowSize(1920,1080)->timeout(30)->waitUntilNetworkIdle()->setChromePath('/usr/bin/google-chrome')->save('/path/to/save/baidu.png');

在这里插入图片描述

更多的使用方法请参考官方文档

注意事项

  • 需要安装Chrome或Chromium浏览器,并确保其可执行文件路径正确。
  • 如果报错puppeteer未找到需要安装
yarn add puppeteer
#或者
npm i puppeteer
  • 报错puppeteer报错chrome未找到,就需要通过setChromePath设置Chrome或Chromium的可执行文件路径

最后

Spatie Browsershot 提供了一个简单而强大的接口,让开发者可以轻松地在 PHP 应用程序中生成网页截图,无论是用于开发、测试还是生产环境。通过其丰富的参数和选项,开发者可以根据需要定制截图过程,以满足特定的应用场景。

– 欢迎点赞、关注、收藏【我码玄黄】,gonghao同名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10W 3KVAC隔离 宽电压输入 AC/DC 电源模块 ——TP10AF系列

TP10AF系列输出功率为10W,具有可靠性高、更小的体积、性价比高等特点,广泛用于工控和电力仪器、仪表、智能家居等相关行业。

SMB攻击利用之-mimikatz上传/下载流量数据包逆向分析

SMB协议作为windows环境下最为常见的一种协议,在历史上出现过无数的通过SMB协议进行网络攻击利用的案例,包括针对SMB协议本身以及通过SMB协议实施网络攻击。 本文将介绍一种通过SMB协议的常见利用方式,即向远程主机传输mimikatz,作为我的专栏《SMB攻击流量数据包分析》中的…

前端学习第一课

AJAX 事先说明,这只是记录,并不是从零到一的教学内容,如果想要学习的话,可以跳过本文章了 ok,转回正题,正如上面所说,这只是记录。其实我是有一定的前端基础的,也做过涉及相关的开发…

【工具】macOS、window11访问limux共享目录\共享磁盘,samba服务安装使用

一、samba服务安装 Samba是一个免费的开源软件实现,使得非Windows操作系统能够与Windows系统进行文件和打印服务共享。它实现了SMB/CIFS协议,并且能够在Linux、Unix、BSD等多种系统上运行。 安装 samba: sudo yum install samba配置 samba…

【介绍下Python多线程,什么是Python多线程】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【气象常用】时间序列的线性拟合

效果图: 主要步骤: 1. 数据准备:下载Hadley Centre observations datasets的HadSST数据 可参考【气象常用】时间序列图-CSDN博客 2. 数据处理:计算线性拟合 3. 图像绘制:绘制折线及拟合线,并添加文本 …

其他自动化工程师都在偷偷学习AI技术,你再不学就落后了!一篇文章教会你使用AI!

其他自动化工程师都在偷偷学习AI技术,你再不学就落后了!一篇文章教会你使用AI! 哈喽,大家好,我是小叔。了解小叔的朋友都清楚,我从来都不是标题党,我只会用美女图片来吸引你们😂&am…

python 六句话让电脑告诉你,刚才插入的串口编号

六句话让电脑告诉你,我的串口号 第一步,安装python 编译器以及pyserial 模块第二步,写入代码 import serial.tools.list_ports usart_list list(serial.tools.list_ports.comports()) input("Please insert your serial port:")…

midjourney里有哪些常用参数?

一、stylize参数 Midjourney 经过训练,可以生成更加具有艺术色彩、构图和形式的图像。 --stylize或参数--s影响该训练的应用程度。 低风格化值生成的图像与提示词非常匹配,但艺术性较差。数值越高艺术性更好,但是和描述词相关性更差&#…

【python量化交易】—— 双均线择时策略 - Qteasy自定义交易策略【附源码】

使用qteasy自定义并回测双均线交易策略 使用qteasy自定义并回测一个双均线择时策略策略思想导入qteasy模块创建一个新的策略回测交易策略,查看结果 使用qteasy自定义并回测一个双均线择时策略 我们今天使用qteasy来回测一个双均线择时交易策略,qteasy是…

Spring初学入门(跟学笔记)

一、Spring概述 Spring是一款主流的Java EE轻量级开源框架。 Spring的核心模块:IoC(控制反转,指把创建对象过程交给Spring管理 )、AOP(面向切面编程,在不修改源代码的基础上增强代码功能) 二、…

AI大语言模型在公共服务中的应用实例

随着计算机技术的飞速发展,人工智能已经成为了当今科技领域的热门话题。从早期的图灵测试到现在的深度学习和神经网络,人工智能已经取得了令人瞩目的成就。特别是近年来,大数据、云计算、高性能计算等技术的发展为人工智能的研究提供了更加广…

多客陪玩系统源码,线上游戏开黑陪玩,线下预约家政服务,语音陪聊,陪玩成品搭建,源码交付,支持二开,陪玩系统开发

游戏陪玩系统主要的优势就是,只要有手游和网游不断推出,就有钱可赚。为什么呢?因为电竞行业正处于上升发展阶段,而且玩游戏对于现代人来说是很好的一种解压方式,所以在市场和用户需求方面都是有保证的。再加上现代人的社交压力越…

使用 5 种有用的方法将音乐从 iTunes 传输到安卓手机

有许多在线音乐应用程序可供您选择,但如果您想在 安卓手机上欣赏 iTunes 音乐,您需要了解步骤。今天的主题是如何将音乐从 iTunes 传输到 安卓设备上。虽然没有适用于 Android 的 iTunes,但您可以在此处获取 5 种有用的方法将 iTunes 音乐传输…

手机自养号测评系统:专业应对电商平台风控,提升账号稳定性

用手机做自养号测评它具备无限生成不同真实手机底层环境的能力,每个环境都相当于一台全新的手机设备。通过先进的底层屏蔽技术,我们成功让亚马逊等平台仅能检测到我们预设的参数,如手机型号、内存、lMEI、序列号、MAC地址以及运营商信息等。每…

Stable Diffusion超详细教程!本地部署 Stable Diffusion

前言 目前市面上比较权威,并能用于工作中的AI绘画软件其实就两款: Midjourney(MJ)Stable-Diffusion(SD) MJ需要付费使用,而SD开源免费,但是上手难度和学习成本略大,并…

变色龙还是树懒:揭示大型语言模型在知识冲突中的行为

你是知识变色龙还是树懒?我今天在ICLR学到一个很有趣的术语,叫做证据顺序(order of evidence)。 大模型RAG处理知识冲突的探讨: 在检索增强生成(Retrieval-Augmented Generation, RAG)的过程中,技术团队会将检索到的前几名文档作为证据,并提示(prompt)给大型语言模型(Large La…

电巢直播XR鉴赏|一块绿幕,闪现进入异星战争的现场!

XR场景赏析 在浩瀚的宇宙深处,一颗神秘莫测的异星球映入我们的眼帘,这里,龙卷风与炮火交织,似乎永不停歇。 星球表面散布着无数的飞船残骸,它们是某场宇宙大战残酷的遗存,无声地诉说着过往的激烈冲突。地面…

LeetCode 3题:无重复字符的最长子串(原创)

【题目描述】 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb" 输出…

Dalsa windows10下安装流程及部分问题分析

文章目录 安装及依赖库说明切换驱动模式流程问题:通过Dalsa SDK开发后找不到相机?问题:找不到采集卡? 安装及依赖库说明 官网(https://www.teledynedalsa.com/en/support/downloads-center/)下载的最新文件(20240515&…