PlayWright(四)- 深入异步
我们来看下异步运行 PlayWright
1、异步的概念
异步举例来讲下:
小明在家需要完成如下事情:
- 电饭锅煮饭大约30分钟
- 洗衣机洗衣服大约40分钟
- 写作业大约50分钟
在同步情况下:小明需要电饭锅处等待30分钟、洗衣机处等待40分钟、写作业50分钟,总计花费时间120分钟。 在异步情况下:小明需要电饭锅处理并启动花费10分钟、洗衣机处理并启动花费10分钟,写作业花费50分钟,总计花费时间70分钟。
同步需要按照顺序执行,等结束之后再执行下一个
异步可以上件事没结束就处理另一件事
2、asyncio异步协程
asyncio是python用来处理并发的一个包,我们的异步运行需要这个包
先导入
import asynico
并且在python3.5后我们都用async/await来实现协程
异步函数
async def haha(): # async前缀异步函数 return 1
我们直接调用异步函数haha()会报错
我们可以使用异步调用
import asyncio async def haha(): # async前缀异步函数 return 1 asyncio.run(haha())
使用异步调用就不会报错了
那await怎么使用呢
可以在操作前放入前缀 await,意思可以挂起自身的协程,然后等待这步操作完成,然后接着运行
3、异步运行playwright
import asyncio from playwright.async_api import async_playwright async def main(): async with async_playwright() as p: browser = await p.chromium.launch() page = await browser.new_page() await page.goto("https://www.baidu.com/") print(await page.title()) await browser.close() # 调用函数 asyncio.run(main())