playwright加载插件

playwright加载用户数据和插件

playwright相对于selenium来说好用太多,稳定性也高,开箱即用,不需要额外的配置。如果你是熟悉selenium,建议转向playwright;如果你首次接触浏览器自动化,应该毫不犹豫地选择playwright。
playwright唯一的缺点可能是出现较晚,用户量较少,可查阅的文档资料少。playwright官方文档。

加载用户数据和插件

默认情况下,playwright启动纯净的浏览器,不带任何用户数据和插件,某些情况下,我们希望保留用户信息,以登录状态访问网站,或者保留插件功能。
接下来以Chromium为例,使用playwright加载用户数据和插件。

  • 用户数据,启动时指定用户数据目录,chromium会从目录读取数据,并保存修改。
  • 插件,目前只支持文件夹(已解压的扩展程序)

以下代码展示了加载用户数据和插件Octotree - GitHub code treeigg学术访问助手

import asyncio
import os
from playwright.async_api import async_playwright, Playwright# 用户数据目录
user_data_dir = os.path.join(os.path.dirname(__file__), "user_data")
# igg插件
path_to_igg = os.path.join(os.path.dirname(__file__), "igg_2.3.4.0")
# github文件树浏览插件
path_to_octotree = os.path.join(os.path.dirname(__file__), "octotree")async def run(playwright: Playwright):context = await playwright.chromium.launch_persistent_context(user_data_dir,headless=False,# executable_path=r'C:\Program Files\Google\Chrome\Application\chrome.exe',args=[f"--disable-extensions-except={path_to_igg},{path_to_octotree}",f"--load-extension={path_to_igg},{path_to_octotree}",],)# if len(context.background_pages) == 0:#     background_page = await context.wait_for_event('backgroundpage')# else:#     background_page = context.background_pages[0]# await background_page.goto('https://www.baidu.com')# Test the background page as you would any other page.page = await context.new_page()# 经过尝试发现,启动浏览器后需要重新加载igg插件,否则其功能不奏效await page.goto("chrome://extensions")await page.locator('#extensions-section extensions-item', has_text='iGG谷歌学术助手').locator('#maskedImage').click()await asyncio.sleep(3)await page.close()page = await context.new_page()await page.goto("https://www.flickr.com/people/julia_sysoeva/")page = await context.new_page()await page.goto('https://github.com/QwenLM/Qwen-Agent')await asyncio.sleep(5)await context.close()async def main():async with async_playwright() as playwright:await run(playwright)asyncio.run(main())

以下几点需要注意

  1. 用户数据目录,可以直接指定到本机Google浏览器的用户目录,但是注意自动化控制浏览器也会对目录数据进行修改,推荐指定新的目录作为用户数据目录,数据修改是可以保存的。Google浏览器用户目录在C:\Users\用户名\AppData\Local\Google\Chrome\User Data
  2. 直接解压获取插件,对于部分插件提供了crx文件(按zip格式解压即可)或者压缩包,直接下载并解压即可。但是注意

    这种方式解压得到的插件可能无法正常工作,比如上文的igg助手,经过调试发现,直接解压得到的manifest.json与正常安装得到的manifest.json内容不一样,安装过程中应该是进行了一些版本检测、校验加密工作,生成了一个key,插件功能会用到这个key,导致这种安装安装方式igg助手无法正常工作。
    在这里插入图片描述

  3. 先使用浏览器安装插件,然后找到插件对应的id,以igg为例
    在这里插入图片描述
    然后到C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\插件id目录下,即可找到解压的插件文件,manifest.json中包含key。
    在这里插入图片描述
  4. 经过调试发现,igg插件在每次自动启动浏览器后需要到插件页面重新加载,其功能才生效,暂不清楚原因。

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

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

相关文章

android13读取cpu频率,并调整频率

总纲 android13 rom 开发总纲说明 目录 1.前言 2.频率类型 3.获取cpu可以调节的频率 4.获取当前频率 5.设置频率 6.最后我们写个脚本,来实现,可以通过参数获取所有cpu的频率,以及设置最大最小频率 6.1 获取cpu频率 6.2 设置最大cpu频率 6.3 设置最小 7.彩蛋 1.前…

Maven使用(依赖管理和继承聚合特性)

Maven是什么?Maven的主要作用是什么? Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 想理解Maven的概念&#…

Bootloader

IAP 简介 IAP(In Application Programming)即在应用编程。 在讲解 STM32 的启动模式时我们已经知 道 STM32 可以通过设置 MSP 的方式从不同的地址启动:包括 Flash 地址、RAM 地址等,在默 认方式下,我们的嵌入式程序是…

【Linux】进程信号 --- 信号产生

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

学生管理系统(C语言)(Easy-x)

课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : XXXXX XXXXX 学 生 姓 名 : XXX 学 号 : XXXXXXXXXX 任 课 教 师 &…

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析 简介 本文档适用于合宙Air780E、Air780EP、Air780EQ、Air201 关联文档和使用工具: 从Ramdump里分析内存泄漏问题 无法抓底层log的情况下如何导出死机dump Luatools下载调试工具 EPAT抓取底层日志 F…

vue视频、图片自动轮播并伴随进度条

废话不多说直接上代 多余没用的部分自己看着删除 <template><div class"showImg"><el-carousel ref"carousel" trigger"hover" :autoplay"false" class"dimControl" :height"${(currenInnerWith*0.37…

探索Python自然语言处理的新篇章:jionlp库介绍

探索Python自然语言处理的新篇章&#xff1a;jionlp库介绍 1. 背景&#xff1a;为什么选择jionlp&#xff1f; 在Python的生态中&#xff0c;自然语言处理&#xff08;NLP&#xff09;是一个活跃且不断发展的领域。jionlp是一个专注于中文自然语言处理的库&#xff0c;它提供了…

BUUCTF逆向wp [MRCTF2020]Xor

第一步 查壳&#xff0c;该题是32位&#xff0c;无壳。 第二步 跟进main&#xff0c;发现反汇编不了 通过下图我们可以发现一串类似字符串的东西 第三步 我们看一下汇编 我们可以得到这些信息&#xff1a;flag的长度为27&#xff08;下面是对本条指令cmp edx 27指令的应用…

英福康INFICON UL1000检漏仪介绍PPT

英福康INFICON UL1000检漏仪介绍PPT

【C++】C++类和对象详解(上)

目录 思维导图大纲&#xff1a; 思维方面&#xff1a; 1. 类的定义&#xff1a; 2. 类的特点&#xff1a; 3. this指针&#xff1a; 4. 类的默认成员函数 默认构造函数 1.构造函数 2.析构函数 3.拷贝构造函数 4. 赋值运算符重载 1. 运算符重载 5. 日期类实现&#…

【IntelliJ IDEA】一篇文章集合所有IDEA的所有设置

IntelliJ IDEA 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;其设置涵盖了多个方面&#xff0c;以满足不同开发者的需求和偏好。由于 IDEA 的设置相当复杂和详尽&#xff0c;这里无法在一篇简短的文章中详细介绍所有设置。然而&#xff0c;我可以提供一…

AV1技术学习:Intra Prediction

对于帧内预测模式编码块&#xff0c;亮度分量的预测模式和色度分量的预测模式在比特流中分别发出信号。亮度预测模式是基于相邻左侧和上侧两个编码块预测上下文的概率模型进行熵编码的。色度预测模式的熵编码取决于色度预测模式的状态。帧内预测以变换块为单位&#xff0c;并使…

VB之制作一个简易计算器

文章目录 创建制作界面设置文本样式技巧双击控件实现功能完整代码vb.net十分适合用于快速开发windows下的桌面程序 创建 制作界面 20个button 一个richtextbox 设置文本样式技巧 ‘左键框选全部控件,进行统一属性设置!’ 双击控件实现功能 注意控件ID与函数对应 完整代码…

首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!

在当今科技迅速发展的时代&#xff0c;大型语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;正以前所未有的速度改变着我们与数字世界的互动方式。基于LLM的智能代理&#xff08;LLM Agent&#xff09;&#xff0c;从简单的信息搜索到复杂的网页操作&…

压缩pdf大小的方法 指定大小软件且清晰

在数字化时代&#xff0c;pdf文件因其良好的兼容性和稳定性&#xff0c;已成为文档分享的主流格式。然而&#xff0c;高版本的pdf文件往往体积较大&#xff0c;传输和存储都相对困难。本文将为您详细介绍几种简单有效的方法&#xff0c;帮助您减小pdf文件的大小&#xff0c;让您…

MacOS M1 安装item2 并配置Zsh

文章目录 1 下载item22 美化item22.1 配置主题2.2 设置黑色的主题&#xff1a;2.3 配置显示状态栏 status bar 3 安装 Oh my zsh3.1 设置主题3.2 设置插件3.3 安装第三方插件1 下载仓库解压2 使用 git clone 一些常用插件以及其作用 参考 1 下载item2 MacOS自带终端&#xff0…

使用小波分析实现文字种类自动识别

文章目录 数据简介开始实验小波分解得出结果结果分析误差分析参考文献 数据简介 各找一篇中文&#xff0c;日文&#xff0c;韩文&#xff0c;英文&#xff0c;俄文较长的学术论文。将论文转化为JPG格式。拆分每张JPG生成更多小的JPG。最终获得很多5个不同语言的JPG并且自带标签…

go中map

文章目录 Map简介哈希表与Map的概念Go语言内建的Map类型Map的声明Map的初始化Map的访问Map的添加和修改Map的删除Map的遍历 Map的基本使用Map的声明与初始化Map的访问与操作Map的删除Map的遍历Map的并发问题实现线程安全的Map 3. Map的访问与操作3.1 访问Map元素代码示例&#…

python—爬虫爬取视频样例

下面是一个使用Python爬虫爬取视频的基本例子。创建一个Python爬虫来爬取视频通常涉及到几个步骤&#xff1a;发送HTTP请求、解析网页内容、提取视频链接、下载视频文件。 import jsonimport requests from lxml import etreeif __name__ __main__:# UA伪装head {"User…