注册 登录

清河洛

playwright包中的同步模块sync_api

qingheluo2021-01-04清河洛654
Playwright是一个微软开源的浏览器自动化工具可通过单个API自动执行Chromium,Firefox和WebKit浏览器,支持无头浏览器(headless)Linux、macOS、Windows下均可以使用,Playwright提供的自动化技术是绿色的,功能强大,稳定且速度快一、安装模块pip install playwright 二、下载浏览器及驱动python -m playwright install 相关环境变量PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers 设置浏览器的下载目录,winwods下默认C:/Users/%USE...

Playwright是一个微软开源的浏览器自动化工具

可通过单个API自动执行Chromium,Firefox和WebKit浏览器,支持无头浏览器(headless)

Linux、macOS、Windows下均可以使用,Playwright提供的自动化技术是绿色的,功能强大,稳定且速度快

一、安装模块

pip install playwright

二、下载浏览器及驱动

python -m playwright install

相关环境变量

PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers
    设置浏览器的下载目录,winwods下默认C:/Users/%USERNAME%/AppData/Local/ms-playwright
HTTPS_PROXY=https://192.0.2.1 :使用指定代理下载浏览器
PLAYWRIGHT_DOWNLOAD_HOST=192.0.2.1 :从指定网址下载浏览器
    也可以单独指定一个浏览器类型的下载地址
    PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST
    PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST
    PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 :跳过浏览器下载

三、playwright的命令行使用

使用pip安装playwright后会在python根目录下的Scripts目录中生成playwright.exe程序,如果该目录在环境变量中,可以直接使用

或者使用python -m playwright来运行

playwright [options] [command]

options:
    -V,--version:输出版本号
    -h, --help:帮组信息

Commands:
    open [url]:打开指定URL
    cr [url]:用Chromium打开指定URL
    ff [url]:用Firefox打开指定URL
    wk [url]:用WebKit打开指定URL
    codegen [options] [url]:打开页面并生成操作代码
    screenshot [options]  :页面截图
    pdf [options]  :保存页面为pdf
    install:安装必要的浏览器和浏览器驱动
    help [command]:显示指定Commands的帮助信息

打开页面并生成操作代码

python -m playwright codegen

-o, --output :保存的代码文件
--target :保存文件的类型,可选值:javascript, python, python-async, csharp(默认"python")
-b, --browser :使用浏览器类型, 可选cr,chromium,ff,firefox,wk,webkit(default:"chromium")
--color-scheme :更改浏览器主题,可选"light"或"dark"
--device :模拟的设备名称,如"iPhone 11"
--geolocation :指定地理位置 例如 "37.819722,-122.478611"
--lang :指定语言和区域,如"en-GB"
--save-storage :保存浏览器状态到指定文件
--load-storage :从指定文件载入浏览器状态
-proxy-server :指定代理,如"http://myproxy:3128"或"socks5://myproxy:8080"
--timezone:指定时区,如"Asia/Shanghai"
--timeout :超时设置,单位毫秒(默认10000)
-user-agent :指定UA
-viewport-size :指定浏览器窗口大小,单位像素,如"1280, 720"</pre><strong>三、导入模块</strong>from playwright.sync_api import sync_playwright

四、创建同步对象

使用with上下文管理来运行:

from playwright.sync_api import sync_playwright

def run(playwright):
    browser = playwright.webkit.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.qingheluo.com/")
with sync_playwright() as playwright:
    run(playwright)

不使用上下文管理:

from playwright.sync_api import sync_playwright

playwright = sync_playwright().start()
browser = playwright.webkit.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://www.qingheluo.com/")

playwright.stop()
    # 终止此实例,使用Python上下文管理器创建的无需使用

五、创建浏览器对象

browser=playwright.[chromium|firefox|webkit].launch(Parameters)

六、创建一个浏览器上下文

相当于一个独立的浏览器进程,不会与其他浏览器上下文共享cookie和缓存等信息
context=browser.new_context(Parameters)

七、在上下文中创建一个页面(标签页)

page=context.new_page()

页面的键盘对象

通过页面对象的keyboard属性获得键盘对象,用于模拟鼠标操作

keyboard=page.keyboard

键盘操作的方法

down(key):按下键盘某一个按键,触发keydown事件
insert_text(text):一次性输入整个字符串,不会触发keydown,keyup或keypress事件
press(key,**,delay):按下键盘若干个按键,触发keydown和keyup事件
    多个按键之间用加号(+)连接
    delay表示按下松开的时间间隔(毫秒)
type(text,**,delay):依次输入字符串的每个字符,触发keydown,keyup或keypress事件
    delay表示两个字符输入的时间间隔
up(key):松开键盘某一个按键,触发keyup事件

页面的鼠标对象

通过页面对象的mouse属性获得鼠标对象,用于模拟鼠标操作

mouse=page.mouse

鼠标操作的方法

click(x,y,**,delay,button,click_count):在页面指定位置处点击鼠标按键
    x,y:float,为相对于页面左上角的坐标
    delay:int(0),鼠标按下松开的时间间隔(毫秒)
    button:str(&#39;left&#39;),按下的按键,可选值left,right,middle
    click_count:int(1),点击的次数
dblclick(x,y,**,delay,button):在页面指定位置处双击鼠标按键
down(**,button,click_count):按下鼠标按键,触发mousedown事件
move(x,y,**,steps):鼠标移动到指定坐标处,steps为移动到指定坐标的时间,单位(1/10秒)
up(**,button,click_count):松开鼠标按键,触发mouseup事件
wheel(delta_x, delta_y):鼠标滚轮水平或垂直滚动指定像素


网址导航