【爬虫自动生成代码】Playwright系列文章二

2023-10-26

Playwright系列文章



前言

Playwright是类似于selenium、Pyppeteer等的一种自动化测试工具,于2020年初微软进行开源,虽然诞生较晚,但发展得非常火热。


一、Playwright录制功能

Playwright有个强大的功能,使用命令录制我们的在浏览器的操作并自动生成代码,使用这个功能可以生成多种语言的代码,减少我们代码编写量。这个功能通过playwright命令行调用codegen来实现。

安装命令:pip install playwright

二、使用步骤

1.查看命令参数(--help)

playwright codegen --help

结果如下:

 -o,表示输出保存的代码文件名称;

-target,代表生成的代码语言,默认为python,传入python-asyn则表示生成异步模式的代码;

-b,代表浏览器的名称,可以使用多种浏览器,默认为chromium浏览器;

-device,代表模拟手机浏览器;

-lang,表示设置浏览器语言;

-timeout,表示设置页面超时时间;

-load-storage,代表读取的状态文件路径,文件包含cookie信息等。context.storage_state()方法生成该文件。

2.命令启动浏览器

playwright codegen -o script.py -b chromium --load-storage login.json

该命令启动chromium浏览器,读取本地上的浏览器状态文件login.json,同时右侧弹窗一个脚本窗口,实时地显示当前操作的对应playwright代码。

启动的浏览器结果:

这里我们输入对应的网站,在网站进行点击,输入下结果:

生成的代码如下(示例):

from playwright.sync_api import Playwright, sync_playwright #导入playwright模块


def run(playwright: Playwright) -> None: 
    browser = playwright.chromium.launch(headless=False)  #启动浏览器
    context = browser.new_context(storage_state="lg.json") #storage_state读取状态文件

    # Open new page
    page = context.new_page()         #新建浏览器页面

    # Go to https://mp.csdn.net/
    page.goto("https://mp.csdn.net/") #访问网站链接

    page.click("img")                  #点击网页对应按钮
    # assert page.url == "https://www.csdn.net/?spm=1011.2124.3001.4476"

    # Close page
    page.close()                       #关闭页面

    # ---------------------
    context.close()                  #关闭上下文管理器
    browser.close()                  


with sync_playwright() as playwright:
    run(playwright)

这里生成的代码可以直接使用python运行,运行后可以看到它复现了我们在浏览器中的操作。

使用这个录制功能我们甚至不需要写代码也可以进行爬虫或测试脚本开发。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了playwright的录制功能的使用,使用录制功能自动生成代码,大大提升了我们的开发效率,而playwright提供了大量方法能使我们快速便捷地处理进行网站请求和数据抓取等。

playwright更多使用详细讲解教程:【网络爬虫&自动化测试】Playwriht系列一_フィロソフィー的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【爬虫自动生成代码】Playwright系列文章二 的相关文章

随机推荐

  • 国内网络安全公司、社区简介

    国内网络安全公司简介 1 http www symantec com region cn 赛门铁克中国一家从事网络安全服务的公司 挺供网络安全产品下载 整体网络安全解决方案 2 http www nsfocus com 绿盟科技有限公司 一
  • 解决数据修改,但是视图未更新

    例一 在uniapp或者vue中 有时候会遇到数据修改 但实际上视图的数据未更新的情况 例如 直接赋值就不会改变视图 用this set 后 就可以更新视图 但是当this list time有设置默认值时 不管直接是直接赋值还是用set
  • (Z)复杂繁琐的芯片设计流程

    芯片制造的过程就如同用乐高盖房子一样 先有晶圆作为地基 再层层往上叠的芯片制造流程后 就可产出必要的 IC 芯片 这些会在后面介绍 然而 没有设计图 拥有再强制造能力都没有用 因此 建筑师的角色相当重要 但是IC 设计中的建筑师究竟是谁呢
  • uniapp连接蓝牙相关问题

    设备蓝牙连接成功 获取不到设备蓝牙服务列表 这种情况一般会接收到uniapp的错误码 10004 我们可以前往uniapp官网API模块查看错误码信息 查看后可以得知错误码10004是没有找到指定服务 我们可以详细看下获取所有服务的api
  • 单例模式实现

    单例模式 一个类在任何情况下都绝对只有一个实例 并提供一个全局访问点 单例模式是创建型模式 单例模式的应用场景 某类只要求生成一个对象的时候 如一个国家主席 班级班长等 单例模式的好处 由于单例模式只允许创建一个对象 共享该对象可以节省内存
  • 关于高通AR摄像机聚焦和调用前后摄像头的研究

    我们在做高通AR的时候会有一些设置的图片无法识别的情况 怎么解决呢 Vuforia有个Target Manager 这里主要负责处理待识别的Target 在最新的4 0版本中 可识别的标志包括以下四种类型 一般使用较多的是Single Im
  • k8s 读书笔记 - 深入掌握 Pod 扩缩容

    Pod 扩缩容的应用场景 在实际生产环境中通常会遇到某个服务需要扩缩容的场景 某个 Service 服务资源紧张 需要对其进行扩容 比如服务请求的负载突然增加 原本一个 Pod 副本开始吃不消 此时需要多扩展几个 Pod 副本来分担突发的负
  • dnsmasq搭建dns

    dnsmasq服务端 安装 yum y install dnsmasq 改配置文件 root yum nfs egrep v etc dnsmasq conf resolv file etc resolv dnsmasq conf stri
  • 示例:统计IP地址对应的省份,并把结果存入到mysql

    ip txt access log import java io BufferedReader FileInputStream InputStreamReader import java sql Connection DriverManag
  • vscode利用ssh远程连接linux虚拟机

    1 vscode是利用ssh远程连接linux的 所以首先确保vscode已经安装了这两个插件 2 点击左下角的连接 3 选择Connect to Host 4 选择添加新的主机 5 按格式输入 ssh 主机名 ip 比如我的 ssh du
  • python list列表操作进阶

    1 list基础介绍 在Python中 list是一种非常重要并且使用也非常广泛的数据类型 可以存储任意数量的有序元素 list可以包含不同数据类型的元素 如整数 浮点数 字符串等 并且可以随时添加或删除其中的元素 使得它在处理动态变化数据
  • Windows小技巧12--永久关闭开机弹出的今日热点

    Windows小技巧12 永久关闭开机弹出的今日热点 1 异常概述 2 解决方法 3 说明 1 异常概述 笔者最近打开Windows 发现总会自动弹出一个未知的今日热点 如下图 即便设置了永久不再弹出 下次开机的时候也会弹出 并且会随机发各
  • windows 安装Python2.7

    Win7 Python2 7 安装教程 Win7 Python2 7 安装过程如下 1 到 官方网站 下载安装文件包Python 2 7 10 amd64 msi 根据自己的电脑配置选择相应的安装包 点击安装即可 默认安装在C Python
  • DOM——页面的渲染、style属性操作、预加载与懒加载、防抖与节流

    一 页面的渲染 一 浏览器加载一份HTML文档的加载过程 1 把标签 文本 注释 属性等html代码解析为节点树 DOM Tree 2 把所有样式 css代码和浏览器自带 解析为结构体 3 把css样式结构体和节点树结合变成呈现树 渲染树
  • 学生考试信息管理系统c语言程序,C语言版学生信息管理系统

    本文实例为大家分享了C语言版学生信息管理系统的具体代码 供大家参考 具体内容如下 一 题目分析 1 功能概述 1 查询学生信息 2 添加学生信息 3 修改学生信息 4 删除学生信息 5 刷新学生信息 6 保存学生信息 7 输出当前学生信息
  • 简单的Kali Linux学习教程

    第一步 安装Kali Linux 您可以从Kali Linux官方网站下载Kali Linux的安装镜像文件 安装程序提供了多种选项 包括在磁盘上安装 在虚拟机中运行等 第二步 更新系统 安装完成后 首先需要通过以下命令更新系统 sudo
  • 【思特沃克前端校招笔试、一面、二面】

    思特沃克 1 前端海外岗 四月中旬收到笔试 写完后几天约一面 一面后两周约二面 2 大概两周后收到邮件答复一面过了约二面 结果点约面链接进去没有显示 通过该邮件咨询了下只要等待下次邀约就行 3 结果几天后收到了感谢信 邮件咨询校招组也无回应
  • 基于bp神经网络的房价预测,房价预测 神经网络

    Python 与深度学习有哪些与建筑设计相接轨的可能性 关注这个问题快一周了 到目前来说还是没发现什么太大的惊喜 我感觉建筑设计界还是要学习一个 不要看到深度学习很火 就弄个大新闻 把这玩意往建筑设计上搬呀 其实深度学习这事儿到底怎么就能和
  • LightGBM 源码学习 (2022-5)

    之前在Linux系统上调试的博文 LightGBM源码学习 准备篇 系统 MacOS 软件 Clion 感觉最新的commit可能有坑 退回到2021年年初的commit code link git checkout 967b45c6866
  • 【爬虫自动生成代码】Playwright系列文章二

    Playwright系列文章 目录 Playwright系列文章 前言 一 Playwright录制功能 二 使用步骤 1 查看命令参数 help 2 命令启动浏览器 总结 前言 Playwright是类似于selenium Pyppete