40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# -*- encoding:utf-8 -*-
|
||
|
||
'''
|
||
@Author : dingjiawen
|
||
@Date : 2023/12/7 13:34
|
||
@Usage : playwright基本使用
|
||
@Desc :
|
||
@参考:https://github.dev/Python3WebSpider/PlaywrightTest
|
||
'''
|
||
|
||
# playwright既支持Pyppetter的异步模式,又支持selenium的同步模式
|
||
import asyncio
|
||
# 同步模式
|
||
from playwright.sync_api import sync_playwright
|
||
|
||
with sync_playwright() as p:
|
||
for browser_type in [p.chromium, p.firefox, p.webkit]:
|
||
browser = browser_type.launch(headless=False)
|
||
page = browser.new_page()
|
||
page.goto('https://www.baidu.com')
|
||
page.screenshot(path=f'screenshot-{browser_type.name}.png')
|
||
print(page.title())
|
||
browser.close()
|
||
|
||
|
||
# 异步模式
|
||
from playwright.async_api 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(headless=False)
|
||
page = await browser.new_page()
|
||
await page.goto('https://www.baidu.com')
|
||
await page.screenshot(path=f'screenshot-{browser_type.name}.png')
|
||
print(await page.title())
|
||
await browser.close()
|
||
|
||
asyncio.run(main()) |