已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Python > 教程

标题: [精]Playwright(python)浏览器脚本录制工具使用

作者: @Ta

时间: 2020-12-20发布,2020-12-20修改

点击: 11937

功能:录制浏览器操作并自动生成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

https://cway.top


[隐藏样式|查看源码]


『回复列表(15|隐藏机器人聊天)』

1.
hmd global nokia 7 plus(黑色)
(/@Ta/2020-12-20 18:32//)

2.

自动生成操作过程?
小米8(白)

(/@Ta/2020-12-20 18:51//)

3.

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_rejectio
ns_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(白)

(/@Ta/2020-12-20 18:53//)

4.

@hik,win7不能安装吗?
小米8(白)

(/@Ta/2020-12-20 18:58//)

5.

@艾木友尔尔巴,是的,自动生成操作过程的代码,是不是Python版本过低了?我3.7的,感觉应该跟系统没关系吧
https://cway.top

(/@Ta/2020-12-20 19:32//)

6.

还是挺实用的,举个浅显易懂的例子吧:假如hu60有个签到功能,并且cookie每半个月会失效,我就可以用--sava录制登陆操作,保存浏览器信息到指定文件hu60。然后用--load hu60载入这个文件录制签到的操作。这样生成了登陆跟签到两个py脚本,我登陆脚本15天执行一次,签到脚本每天执行。只是不清楚它能不能在没有桌面的linux系统上运行,在此艾特万年的老虎@老虎会游泳 这类生成的脚本程序能在没桌面的linux上运行么?
https://cway.top

(/@Ta/2020-12-20 20:22//)

7.
用户被禁言,发言自动屏蔽。
(/@Ta/2020-12-20 20:26//
被禁言
)

8.

@hik,你可以加上“无头浏览器”,“headless”等关键词搜索看看。

(/@Ta/2020-12-20 20:41//)

9.

@老虎会游泳看了下项目地址,支持,第二段开头就是 https://github.com/microsoft/playwright-python
截图录屏_选择区域_20201220204710.png
https://cway.top

(/@Ta/2020-12-20 20:48//)

10.

@hik,3.8了都,看样子是连不上,不会要樊强吧
小米8(白)

(/@Ta/2020-12-21 00:01//)

11.

@艾木友尔尔巴,我用win10测试了下可以,官方最新版py3.9,我只下载了个谷歌浏览器就停了,下载太慢了,我也觉得可能是网络原因,一共会下载三个浏览器,第一个谷歌浏览器下载好后就可以把命令停掉了,只用谷歌浏览器就行
https://cway.top

(/@Ta/2020-12-21 10:45//)

12.

@艾木友尔尔巴,要不你解压试试,我看到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

(/@Ta/2020-12-21 11:06//)

13.

@hik,好的,谢谢。。等会测试一下。挺有兴趣的
小米8(白)

(/@Ta/2020-12-21 12:53//)

14.

@hik,我把这个坑比火绒关掉就可以下载了。速度不慢呀,我用的清华源
小米8(白)

(/@Ta/2020-12-21 21:44//)

15.

2分钟就下好了
image.png
小米8(白)

(/@Ta/2020-12-21 21:45//)

回复需要登录

9月28日 06:31 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1