python中模拟浏览器操作之playwright使用说明以及打包浏览器驱动问题

python中模拟浏览器操作之playwright使用说明以及打包说明

start

总是会遇到一些需要自动化浏览器的某些操作需求。方案有很多:

  1. 可以自己写一个js脚本然后直接在浏览器上运行。
  2. 可以使用油猴对指定的网站自动进行自定义增强。
  3. 使用python基于selenium去做浏览器自动化
  4. 使用python基于playwright去做浏览器自动化

playwright的使用方法和selenium在语法上基本是差不多的,但是他有比selenium好的地方,他会主动下载自动化操作浏览器时需要运行的chromedriver.exe。有了本地文件,在使用pyinstaller打包的时候,可以直接把驱动打到应用里面,避免因为浏览器更新,导致驱动不匹配,运行报错的问题。

使用

下面记录一下playwright在python中的基本使用。

1. 安装依赖

shell 复制代码
# 安装
pip install playwright

# 安装驱动依赖
python -m playwright install

2.查看本地chromedriver.exe

shell 复制代码
playwright install --dry-run

使用上述命令,会显示谷歌驱动安装的目录,直接拷贝该文件夹。

例如上图中谷歌的版本你是140.0,驱动下载到本地的路径是:C:\Users\17607\AppData\Local\ms-playwright\chromium-1187

直接拷贝文件夹chromium-1187

在虚拟环境下的 playwright 的 deiver 的 package 下新建一个文件夹.local-browsers。把我们刚刚复制的浏览器驱动拷贝进去。

路径示例

复制代码
D:\jiaoben\venv\Lib\site-packages\playwright\driver\package\.local-browsers\chromium-1187

3.打包

我这里打包使用的是pyinstaller。

打包命令:

复制代码
pyinstaller --onefile  index.py --add-data "D:\jiaoben\venv\Lib\site-packages\playwright;playwright/"

--onefile: 打包成一个exe文件的意思

--add-data:添加需要打包进去的数据,这里的路径对应我们需要打包进程序的浏览器驱动。

打包后的程序,默认使用的就是我们打包进程序的驱动了。

相关推荐
云和数据.ChenGuang1 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu1 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
迪菲赫尔曼1 小时前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
qianbo_insist2 小时前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
多弗朗皮卡丘2 小时前
C++的IO流
开发语言·c++·io流·文件io流
骑着蜗牛撵大象3272 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph
itmigrate3 小时前
Rust 里的所有权误区:不是不写 clone 就叫高性能
开发语言·后端·rust
Brilliantwxx3 小时前
【Linux】 文件访问与路径解析:目录、文件名、dentry、路径缓冲与 dcache 全解析
linux·运维·服务器·开发语言·spring
摇滚侠3 小时前
《On Java 中文版 基础卷》阅读笔记 初始化和清理 08
java·开发语言·笔记
xiangyun613 小时前
C++ 手撕 shared_ptr:引用计数与控制块到底长什么样?
开发语言·c++·算法·面试·stl