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('left'),按下的按键,可选值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):鼠标滚轮水平或垂直滚动指定像素