点此免费加入Python网络爬虫学习交流QQ群:428518750
Playwright提供了一个截屏的API:page.screenshot。使用该API,只需要指定截图的图片的保存路径及文件名即可。如果仅指定文件名,默认保存在当前目录。
官方API的文档地址:https://playwright.dev/python/docs/screenshots
截取当前屏幕
如果仅仅截取当前屏幕(浏览器)上能看到的部分,那么可以使用如下语法:
page.screenshot(path="截图保存路径")
示例:打开SQL网主页,然后截取当前屏幕内容,保存为一张图片。
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto('https://sql.wang') page.screenshot(path=f'screenshot1.png') page.wait_for_timeout(2000) browser.close()
截取整个页面
有时候,页面可能会比较长,一个屏幕无法全部展示出来。如果想截取整个页面,怎么办呢?
page.screenshot提供了full_page参数,语法如下:
page.screenshot(path="截图保存路径",full_page=True)
示例:打开SQL网主页,然后截取主页全部内容,保存为一张图片。
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto('https://sql.wang') page.screenshot(path=f'screenshot2.png',full_page=True) page.wait_for_timeout(2000) browser.close()
截取页面的一部分
有时候,我们可能只想截取页面的一部分,那么,Playwright也支持将想要截取的部分筛选出来,然后调用截图API进行截图。
示例:打开SQL网主页,截取页面部分,保存为一张图片。
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto('https://sql.wang') page.locator('.main-footer').screenshot(path=f'screenshot3.png') page.wait_for_timeout(2000) browser.close()
使用base64对图片数据进行加密、解密
除了可以将页面截图保存为图片之外,也可以使用base64对图片数据进行加密和解密,将图片转换为一串字符。
示例:截取页面后,转换为一串字符并输出。
import base64 from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto('https://sql.wang') screenshot_bytes = page.screenshot() print(base64.b64encode(screenshot_bytes).decode()) page.wait_for_timeout(2000) browser.close()
本站所有内容均为原创,本站保留所有权利。仅允许非商业用途的转载,但必须注明来源网站、作者、来源链接!否则,由此造成的一切后果,由转载方承担!