自動化
==Splinter 是對 selenium的抽象掏秩,更高級用法==
有關(guān)Splinter && selenium 博客
# 安裝playwright庫
pip install playwright
# 安裝瀏覽器驅(qū)動文件(安裝過程稍微有點慢)
python -m playwright install
# 命令行鍵入 --help 可看到所有選項
python -m playwright codegen
-o:將錄制的腳本保存到一個文件
--target:規(guī)定生成腳本的語言绘证,有JS和Python兩種,默認為Python
-b:指定瀏覽器驅(qū)動
playwright demo
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
同步依次打開三個瀏覽器哗讥,前往baidu搜索嚷那,截圖后退出。
from playwright import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
browser = browser_type.launch()
page = browser.newPage()
page.goto('https://baidu.com/')
page.screenshot(path=f'example-{browser_type.name}.png')
browser.close()
異步異步操作可結(jié)合asyncio同時進行三個瀏覽器操作杆煞。
import asyncio
from playwright import async_playwright
async def main():
async with async_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
browser = await browser_type.launch()
page = await browser.newPage()
await page.goto('http://baidu.com/')
await page.screenshot(path=f'example-{browser_type.name}.png')
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
移動端更厲害的是魏宽,playwright還可支持移動端的瀏覽器模擬腐泻。 下面是官方文檔提供的一段代碼,模擬在給定地理位置上手機iphone 11 pro上的Safari瀏覽器队询,首先導(dǎo)航到maps.google.com派桩,然后執(zhí)行定位并截圖。
from playwright import sync_playwright
with sync_playwright() as p:
iphone_11 = p.devices['iPhone 11 Pro']
browser = p.webkit.launch(headless=False)
context = browser.newContext(
**iphone_11,
locale='en-US',
geolocation={ 'longitude': 12.492507, 'latitude': 41.889938 },
permissions=['geolocation']
)
page = context.newPage()
page.goto('https://maps.google.com')
page.click('text="Your location"')
page.screenshot(path='colosseum-iphone.png')
browser.close()