whatshotPlaywright(python)浏览器脚本录制工具使用

hik
@Ta 2020-12-20发布,2020-12-20修改 11916点击

功能:录制浏览器操作并自动生成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|隐藏机器人聊天)
  • @Ta / 2020-12-20 / /
    hmd global nokia 7 plus(黑色)
  • @Ta / 2020-12-20 / /

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

  • @Ta / 2020-12-20 / /

    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 / /

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

  • hik
    @Ta / 2020-12-20 / /

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

  • hik
    @Ta / 2020-12-20 / /

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

  • @Ta / 2020-12-20 / /
    被禁言
    用户被禁言,发言自动屏蔽。
  • @Ta / 2020-12-20 / /

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

  • hik
    @Ta / 2020-12-20 / /

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

  • @Ta / 2020-12-21 / /

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

  • hik
    @Ta / 2020-12-21 / /

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

  • hik
    @Ta / 2020-12-21 / /

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

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

  • @Ta / 2020-12-21 / /

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

  • @Ta / 2020-12-21 / /

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

添加新回复
回复需要登录