使用puppeteer一键启动本地开发环境

使用puppeteer实现一个简单的爬虫 使用puppeteer抓取数据的简单教程 阅读详情

背景

puppeteer是一个通过Devtools协议来提供操控chrome/chromium浏览器的高阶API的NodeJS库

我负责的一个项目的启动本地开发环境是这样的:使用npm run dev指令运行webpack-dev-server服务。暴露出访问地址:http://localhost:1314。然后登陆部署到内部项目环境下的应用。获取到账户cookie的entrance键值对。然后访问本地的开发环境地址,通过document.cookie语法写入相应的cookie的entrance键值对。刷新本地开发页面。此时才可正常访问相应的服务端接口。

看到puppeteer库的功能,尝试以上过程通过puppeteer库的自动化功能实现,以达到一键启动本地开发环境的目的。

过程

我的打算是通过puppeteer在当前的chrome浏览器中进行相关的操作。puppeteer.connect(options)将 Puppeteer 添加到已有的 Chromium 实例。但是options参数中的browser.wsEndpoint字段表示一个浏览器 websocket 端点链接,该链接是由browser.wsEndpoint()获取。

正常不能获取到正常运行的浏览器的wsEndpoint

How do I access the browser target?
The endpoint is exposed as webSocketDebuggerUrl in /json/version. Note the browser in the URL, rather than page. If Chrome was launched with --remote-debugging-port=0 and chose an open port, the browser endpoint is written to both stderr and the DevToolsActivePort file in browser profile folder.

HTTP Endpoints: If started with a remote-debugging-port, these HTTP endpoints are available on the same port.

因此,我决定通过puppeteer.launch语法开启一个新的浏览器实例,然后在这个新的浏览器上进行自动化操作。相关的启动参数如下:

const browser = puppeteer.launch({
   
   
    executablePath: 'C:\\chrome.exe',
    headless: false, // 关闭无头模式
    ignoreHTTPSErrors: false, // 在导航期间忽略 HTTPS 错误
    args: ['--start-maximized', '--disable-extensions-expect=D:\\vue-devtools'] // 最大化启动,开启vue-devtools插件
    defaultViewport: {
   
    // 为每个页面设置一个默认视口大小
        width: 1920,
        height: 1080
    }
})

后续是将背景节中的描述的操作使用puppeteer实现出来,代码如下:

// run-browser.js
const main = async () => {
   
   
    // ... 启动浏览器实例的代码
    const page =
electron-build+vue+puppeteer 开发环境Chromium无法启动的问题 可见electron-build的开发环境下,puppeteer默认是在运行相对目录dist_electron中找Chromium的启动文件npm run electron:serve 启动命令不会讲node_modules/puppeteer/.local-chromium目录复制到dist_electron下。由于没有设置executablePath指定可以启动的浏览器,打印默认的Chromuim的位置。提示的问题是找不到可以启动的浏览器程序。 阅读详情

相关推荐

nodejs使用Puppeteer简单实现爬虫

nodejs使用Puppeteer简单实现爬虫 1、puppeteer介绍 描述:puppeteer是内置了chrome内核的一个nodejs的爬虫包,基于webdriver,可实现仿人操作界面,例如页面滚动、按钮点击、导航跳转等具体功能。 安装: 全局安装:npm -g install puppeteer 当前项目安装:npm -S install puppeteer puppeteer-api puppeteer的相关api操作,可参考文档 2、node简单实现 代码演示: const

洪小旺铺的博客 4922

puppeteer.launch(options)参数详解---附官方文档和中文文档

puppeteer官方文档链接 puppeteer中文文档链接 参数名称 参数类型 参数说明 ignoreHTTPSErrors boolean 在请求的过程中是否忽略 Https 报错信息,默认为 false headless boolean ...

蓝枫秋千的踩坑记录 1万+

华为IC岗笔试刷题含答案(2)

又做了几套题,记录了部分及答案,如有错误,欢迎评论指正。

Ingrid的博客 1万+

Puppeteer 使用教程-基础篇(超详细、超全面)

Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。本文涉及了Puppeteer常见常用的API样例,包括爬取图片、视频、cookies设置,字符输入等多方面知识,很全面哦。

~朴:shu的博客 3万+

pyppeteer的环境搭建,常见参数及2个案例

. pyppeteer介绍 Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。 Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。 Pyppeteer的两大特点,chromium浏览器和asyncio框架: Chromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome

数据知道的博客 4万+

2022-05-17 使用webpack打包后puppeteer报错问题;Error: _projectRoot is undefined. Unable to create a BrowserFet

关于 在开发环境下可以正常使用puppeteer, 但打包后,启动 puppeteer 时会报错 的原因与解决方法

program_runner的博客 1371

WebView2 通过 PuppeteerSharp 实现RPA获取壁纸 (案例版)

基于WebView2,技术又深一层次的展开,一个好的技术,必定用到合适的场景上才是最合适的。

蓝创精英团队 953

Try Puppeteer vs 本地Puppeteer:为什么云端运行是未来趋势?

**Try Puppeteer** 是一个允许开发者在云端运行 Puppeteer 脚本的创新工具,无需在本地配置复杂环境。本文将深入对比云端与本地运行 Puppeteer 的核心差异,揭示为什么云端执行正成为自动化测试和网页 scraping 的首选方案。 ### 🚀 本地Puppeteer的痛点:你是否也曾遇到这些麻烦? 本地运行 Puppeteer 时,开发者常常面临三大挑战: 1.

gitblog_00012的博客 818

puppeteer启动的时候怎么使用cookie

可以在浏览器启动后设置 Cookie,适用于动态加载 Cookie 的情况。可以持久化会话数据,包括 Cookie,适合需要多次运行脚本的情况。可以通过 Puppeteer 的和方法获取、保存和重用 Cookie,模拟登录状态。这些方法可以帮助你在 Puppeteer使用和管理 Cookie,实现自动化任务时维持登录状态或会话信息。

m0_57236802的博客 2258

Puppeteer使用总结

文章目录NodeJS环境配置MAC配置安装方式二:node版本管理:Linux配置Windows配置开发环境初始化基础环境百度OCR对接我的实例代码Docker部署小知识点Puppeteer 语法错误总结我的博客 NodeJS环境配置 Nodejs下载地址:http://nodejs.cn/download/ MAC配置 从官网下载并直接安装就可以了 安装方式二: # 查看node版本 brew search node # 安装node brew install node # 检查是否安装成功 n

Pixiao的博客 1万+

node爬虫puppeteer使用

node 爬虫 puppeteer 使用 puppeteer 是一个基于 Chromium 的 node 爬虫框架。其厉害之处就是他具备浏览器的所有功能,并且通过 nodejs 就可以控制。完美实现我们要的爬虫效果 (后面附有完整代码~) 安装 puppeteer 时还会同步下载 Chromium 。网络不好的直接用 cnpm 下载即可。 当然官方也有一个另外的包,原话如下: Since version 1.7.0 we publish the puppeteer-core package, a versi

Jioho的博客 4995

puppeteer自动化及爬虫:连接现有谷歌浏览器、新建窗口

1)安装puppeteer 官方文档:https://zhaoqize.github.io/puppeteer-api-zh_CN/#/ 知乎教程:https://zhuanlan.zhihu.com/p/66296309 # 1.仅安装核心,然后用chrome运行,不下载Chromium 【建议方式】 cnpm i puppeteer-core # or "yarn add puppeteer-core" # 2.下载完整版本,含chromium,速度慢 npm i puppeteer # or "ya

* 2151

Puppeteer配置优化:启动参数调优

你是否遇到过Puppeteer启动缓慢、内存占用过高或稳定性问题?作为Google开发的浏览器自动化工具(Browser Automation Tool),Puppeteer的性能表现很大程度上取决于启动配置。本文将系统讲解如何通过精细化参数调优,使Puppeteer实例启动速度提升40%、内存占用降低30%,同时避免常见的资源竞争问题。 ## 核心启动参数解析 Puppeteer通过`pup...

gitblog_00231的博客 673

找到/打开pupprteer对应chrome版本

前期提要:导出pdf的时候,会用pupprteer启动一个浏览器实例,再打开指定页面进行打印,页面写成什么样,导出的pdf内容就是什么样,听起来很正常。但是遇到了调试的时候页面显示很正常,而导出的内容css样式有问题的情况,经大佬指点,发现是我开发的时候,用的新版谷歌浏览器,而pupprteer对应的chrome版本比较旧,有些样式没兼容好。于是专门下载了pupprteer对应的Chromium进行调试,才解决问题。

weixin_43915401的博客 1644

puppeteerchrome浏览器和chrome的插件环境

Puppeteer 默认使用无头 Chrome,不支持直接安装扩展程序。通过这些方法,你可以在 Puppeteer 中调试 Chrome 并添加所需的插件。选项来减慢 Puppeteer 的操作速度,以便更容易观察每一步。语句,结合 Chrome DevTools 进行断点调试。选项启动 Chrome,并在该目录中手动安装扩展。: 在调试时,可以将 Puppeteer 的。选项自动打开 Chrome 的开发者工具。: 在启动 Puppeteer 时,使用。,以便在可视化的浏览器窗口中查看操作。

远方雪的专栏 1744

puppeteer 连结已有的Chrome浏览器 puppeteer.connect

puppeteer 连结已有的Chrome浏览器 因为puppeteer.launch启动Chrome浏览器,虽然可以传浏览器启动参数,但是不知道怎么都没能奏效,而且关闭后又不能记住参数配置,真是头疼,上网各种搜索,也是没能解决。于是 ,尝试换了一个思路,就是通过加载一个已经有的浏览器,这个已经安装的浏览器,可以在快捷方式中加启动参数,亲测这个有效。或者直接先打开浏览器,然后,手动配置好了,再启动puppeteer通过调试端口就可以了,算是一种绕路,解决了目前的需求。 第一步,现在Chrome的桌面快捷方

ge_tan_qing_wa的博客 8215

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3401

errata3_illumination_GloBal_advanced_源码.zip

errata3_illumination_GloBal_advanced_源码

上一篇: 高级CORS利用技术
下一篇: 使用JS获取一个Vue组件渲染后的内容
张子虚
博客等级 码龄14年 33粉丝 72原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值