1、异步概念
上文中,我们使用同步运行方式操作了playwright,那同步和异步究竟什么意思呢?
同步:发送一个请求,等待返回,然后再发送下一个请求
异步:发送一个请求,不等待返回,随时可以再发送下一个请求
通俗来说:同步只能按执行顺序执行,异步可以不按顺序执行
在讲异步之前,我们再来讲另一种运行方式,之前我们使用start,stop来运行,还有一种with方式
2、with语句是什么?
官方解释很复杂,我们不需要看,只需知道有些任务,我们需要事先设置,事后清理,这种场景我们可以使用with语句,可以让代码更简练,并且语句出现异常时,清理工作也更简单
看一个简单例子:
代码语言:javascript复制file = open('1.txt') # 打开1.txt的文件
data = file.read() # 读取打开的文件到data中
file.close() # 关闭文件
这是一个处理的文件的简单操作,这个操作可能会有两个问题:
1、忘记关闭文件
2、语句有异常,未做处理
我们用with语句
代码语言:javascript复制with open('1.txt') as file:
data = file.read()
代码简洁还会自动关闭
3、with启动playwright
代码语言:javascript复制with sync_playwright() as playwright: # 省略了start启动
browser = playwright.chromium.launch(headless=False, slow_mo=5000) # 设置了每步等待时间为3s
page = browser.new_page() # 打开一个页面
page.goto('https://www.baidu.com/') # 打开百度地址
browser.close() # 省略了关闭playwright对象
在看下之前用start和stop的启动方式
代码语言:javascript复制from playwright.sync_api import sync_playwright # 先导包
playwright = sync_playwright().start() # 创建playwright对象
browser = playwright.chromium.launch(headless=False) # 启动谷歌浏览器赋值给对象
page = browser.new_page() # 打开一个页面
page.goto('https://www.baidu.com/') # 打开百度地址
browser.close() # 关闭浏览器对象
playwright.stop() # 关闭playwright对象释放资源
清晰明了,下节我们看异步运行