首页 > 其他分享 >playwright 连接browserless 服务

playwright 连接browserless 服务

时间:2024-06-23 09:00:15浏览次数:22  
标签:browserless playwright await nginx let 连接 browser

playwright是与puppeteer类似的包装,但是playwright 实现的周边更加丰富,也是一个很不错的工具,值得使用下,以下是关于
playwright 连接browserless服务的简单说明

环境准备

  • docker-compose
version: "3"
services:
  nginx:
    image: nginx:alpine
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html
    ports:
      - "80:80"
  browser:
    image: ghcr.io/browserless/chromium:latest
    environment:
      - CONCURRENT=40
      - QUEUED=20
      - CORS=true
      - CORS_MAX_AGE=300
      - DATA_DIR=/tmp/my-profile
      - TOKEN=6R0W53R135510
    volumes:
      - ./my-profile:/tmp/my-profile
    ports:
      - "3000:3000"

访问

需要先安装playwright 包yarn add playwright

  • dalong.js
const {chromium} = require("playwright");
 
(async () => {
    let browser = await chromium.connectOverCDP("ws://localhost:3000?token=6R0W53R135510");
    console.log("Page loaded");
    // 此处设置useragent  
    let bContext = await browser.newContext({
        userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    });
 
    let page = await bContext.newPage();
 
    await page.goto("http://nginx", { waitUntil: "networkidle" });
 
    let result = await page.evaluate(()=>{
        let contents = document.querySelector(".logo");
        return contents.innerHTML;
 
    });
    console.log(result);
    await browser.close();
})();
  • 效果

说明

尽管playwright 也是对于无头浏览器的处理,但是playwright 提供了不少其他能力,比如测试,android 模拟器支持,整体使用上与puppeteer类似,但是也有不少的差异,比如useragent 以及cookie 的设置都是在browsercontext 中的,与puppeteer 还是有很大的差异的
playwright 提供了不少客户端的支持,而且属于企业维护的,还是值得学习下的,playwright 官方提供了一个迁移手册值得看看

参考资料

https://playwright.dev/
https://playwright.dev/docs/api/class-browsercontext#browser-context-add-cookies
https://docs.browserless.io/Libraries/puppeteer-library
https://docs.browserless.io/Libraries/playwright

标签:browserless,playwright,await,nginx,let,连接,browser
From: https://www.cnblogs.com/rongfengliang/p/18206868

相关文章

  • gbase8s关于客户端和数据库连接的方式和应用建立连接的简单线索分工
    应用和数据库的连接分为本地连接和远程连接,当应用程序和数据库在同一台服务器上为本地连接,不在一台服务器上为远程连接1.本地连接本地连接三种方式:通过共享内存消息系统:应用和数据库在同一台服务器上,应用程序和数据库服务器将挂接在相同的内存段中,应用程序发送消息给数据库......
  • 前端智能合约:连接区块链与用户界面
    引言智能合约是区块链技术中的核心概念,它允许在没有中介的情况下执行可信的交易和协议。然而,要使这些合约对终端用户有用,我们需要一个能够与智能合约交互的前端界面。本文将探讨如何使用Web3.js等工具来构建一个能够与智能合约进行交互的前端应用程序。Web3.js简介Web3.js......
  • 查询Kafka生产者是否连接到Kafka服务
    个人名片......
  • 解决idea项目连接数据库报错:Could not create connection to database server.
    前言idea运行项目时连接数据库,报错Couldnotcreateconnectiontodatabaseserver. 方法1.检查MySQL设置时区:打开运行cmd命令提示符首先连接数据库,输入mysql-hlocalhost-uroot-p,再回车,输入密码连接成功后,输入showvariableslike'%time_zone';,再回车,显示时区配......
  • AWS ec-2基于SSH连接以及初始化指南
    概述首先我们需要先了解一下ssh的连接原理。ssh大概就是,你的本地计算机生成了一对密钥,一个叫做私钥,一个叫做公钥。然后你把你的公钥上传到远端服务器其中一个user下的.ssh文件夹中。每次ssh连接时,服务器就会看自己的公钥和你计算机的私钥能不能对的上,对的上就可以连接。而刚创......
  • ubuntu修改root密码以及开启root ssh远程连接
    root密码ubuntu默认的root用户是没有固定密码的,它的密码是随机产生并且动态改变的,即每次开机都有一个新的root密码,所以拿到一台新的Ubuntu系统服务器后,我们需要设置一个固定的root密码。修改root用户密码sudopasswd然后它会提示你输入安装操作系统时初始用户的密......
  • Python连接Etcd集群基础教程
    1、背景介绍最近接手了一个项目,项目是使用Python开发的,其中使用到了Etcd,但是项目之前开发的方式,只能够支持单节点连接Etcd,不能够在Etcd节点发生故障时,自动转移。因此需要实现基于现有etcdsdk开发一个能够实现故障转移的功能,或者更换etcdsdk来实现故障转移等功能。先来看看项......
  • 【MySQL连接器(Python)指南】02-MySQL连接器(Python)版本与实现
    文章目录前言MySQL连接器(Python)版本MySQL连接器(Python)实现总结前言MySQL连接器(Python),用于让Python程序能够访问MySQL数据库。要想让Python应用程序正确高效地使用MySQL数据,就需要深入了解MySQL连接器的特性和使用方法。MySQL连接器(Python)版本下表......
  • 计算机网络传输中的三部曲:连接、通信与释放
    ✨✨欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨......
  • PG使用证书连接 客户端不能开 verify-all
    Stringurl="jdbc:postgresql://x.x.x.x:5432/your_database_name?"+"user=your_username&password=your_password&ssl=true&"+"sslmode=prefer&"+"sslrootcert=/path/to/yo......