功能:录制浏览器操作并自动生成py或js代码
有node.js版本,只是我不会也就不介绍了,以下是python环境下的教程。环境要求需Python3.7+,安装:
# 安装playwright库
pip install playwright
# 安装浏览器驱动文件(文件较大有点慢)
python -m playwright install
录制
python -m playwright codegen
其他选项:
-target 生成语言,有python/javascript/python-async/csharp可选,缺省值为python
-o 保存路径,也可以写成--output
-b 指定浏览器,浏览器选项如下(缺省默认为chromium):
cr 谷歌浏览器,或全称chromium
ff 火狐浏览器,或全称firefox
wk 全称webkit
-h 查看帮助,也可写成--help
例如:
python -m playwright codegen -h
例如指令:
python -m playwright codegen --target python -o 'my.py' -b chromium https://hu60.cn
脚本代码会直接在控制台输出供你复制,或者在执行命令目录下查看my.py文件
完整选项/命令:
选项:
-V, --version 输出版本号
-b, --browser <browserType> 浏览器类型
--color-scheme <scheme> 更改主题 取值 "light" 或 "dark"
--device <deviceName> 模拟设备,例如 "iPhone 11"
--geolocation <coordinates> 指定地理位置 例如 "37.819722,-122.478611"
--lang <language> 指定语言区域 "en-GB"
--save-storage <filename> 保存浏览器状态到指定文件
--load-storage <filename> 载入指定文件浏览器状态
--proxy-server <proxy> 指定代理服务器 例如 "http://myproxy:3128" 或 "socks5://myproxy:8080"
--timezone <time zone> 失去设置 例如 "Europe/Rome"
--timeout <timeout> 超时设置,单位毫秒 (default: "10000")
--user-agent <ua string> 指定UA
--viewport-size <size> 指定浏览器像素 "1280, 720"
命令:
open [url] 打开URL或用-b, --browser指定浏览器
cr [url] 打开URL用Chromium
ff [url] 打开URL用Firefox
wk [url] 打开URL用WebKit
codegen [options] [url] 打开页面生成代码
screenshot [options] <url> <filename> 页面截图
pdf [options] <url> <filename> 保存页面为pdf
install 确保安装必要的浏览器驱动
help [command] 帮助
--save-storage与--load-storage是个非常实用的命令,例如用下面命令访问葫芦林并登陆,关闭浏览器时自动把cookie等浏览器信息存入hik:
python -m playwright cr https://hu60.cn --save-storage hik
使用时用下述命令直接调用,打开页面即为登陆状态的hu60:
python -m playwright cr https://hu60.cn --load-storage hik
假如我有多个葫芦林帐号就可以存在多个不同文件,使用时输入命令即可
在网站录制操作的过程中也可以用--sava,例如:
python -m playwright codegen --target python -o 'login.py' https://hu60.cn --save-storage hik
这样py代码中也生成了保存信息到本地的功能代码,适合于更新帐号信息。然后录制操作只用录制登陆后的页面即可,如下命令,直接读取已登陆的状态,然后就能在已登陆状态下录制:
python -m playwright codegen --target python -o 'run.py' https://hu60.cn --load-storage hik
其他功能自己探索吧!
开源地址:https://github.com/microsoft/playwright
https://github.com/microsoft/playwright-python
自动生成操作过程?
小米8(白)
C:\Users\Administrator>python -m playwright install
(node:7300) UnhandledPromiseRejectionWarning: Error: connect EACCES 13.107.246.1
3:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:7300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This
error originated either by throwing inside of an async function without a catch
block, or by rejecting a promise which was not handled with .catch(). To termina
te the node process on unhandled promise rejection, use the CLI flag
--unhandle d-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:7300) [DEP0018] DeprecationWarning: Unhandled promise rejections are depre
cated. In the future, promise rejections that are not handled will terminate the
Node.js process with a non-zero exit code.
小米8(白)
@hik,win7不能安装吗?
小米8(白)
@艾木友尔尔巴,是的,自动生成操作过程的代码,是不是Python版本过低了?我3.7的,感觉应该跟系统没关系吧
https://cway.top
还是挺实用的,举个浅显易懂的例子吧:假如hu60有个签到功能,并且cookie每半个月会失效,我就可以用--sava录制登陆操作,保存浏览器信息到指定文件hu60。然后用--load hu60载入这个文件录制签到的操作。这样生成了登陆跟签到两个py脚本,我登陆脚本15天执行一次,签到脚本每天执行。
只是不清楚它能不能在没有桌面的linux系统上运行,在此艾特万年的老虎@老虎会游泳 这类生成的脚本程序能在没桌面的linux上运行么?
https://cway.top
@hik,你可以加上“无头浏览器”,“headless”等关键词搜索看看。
@老虎会游泳,
看了下项目地址,支持,第二段开头就是 https://github.com/microsoft/playwright-python

https://cway.top
@hik,3.8了都,看样子是连不上,不会要樊强吧
小米8(白)
@艾木友尔尔巴,我用win10测试了下可以,官方最新版py3.9,我只下载了个谷歌浏览器就停了,下载太慢了,我也觉得可能是网络原因,一共会下载三个浏览器,第一个谷歌浏览器下载好后就可以把命令停掉了,只用谷歌浏览器就行
https://cway.top
@艾木友尔尔巴,要不你解压试试,我看到windows下载储存路径 C:\Users\Administrator\AppData\Local\ms-playwright\
文件我传到网盘:https://hik.lanzous.com/iH3TZjk4qla
里面有个.links文件夹里的文件用记事本打开,路径好像要修改
我的路径是D:\Programs\Python\Python39\lib\site-packages\playwright\driver,我觉得可能是跟driver文件夹里某个文件对应着的,遂把driver文件夹也打包了:https://hik.lanzous.com/iDueljk4uud
https://cway.top
@hik,好的,谢谢。。等会测试一下。挺有兴趣的
小米8(白)
@hik,我把这个坑比火绒关掉就可以下载了。
速度不慢呀,我用的清华源
小米8(白)
2分钟就下好了

小米8(白)