如何用Python版Playwright异步通过URL保存图片?
使用Playwright Python异步保存单张图片的方法
不需要依赖截图功能,直接用Playwright的异步请求API就能实现图片保存,步骤如下:
核心实现逻辑
通过page.request.get()异步请求目标图片URL,获取响应的二进制内容后写入本地文件,这种方式还能复用浏览器的会话上下文(比如Cookie、代理配置),适配爬虫场景的各种验证需求。
完整代码示例
import asyncio from playwright.async_api import async_playwright async def save_image(page, image_url, save_path): # 异步发起图片请求 response = await page.request.get(image_url) if not response.ok: print(f"图片请求失败,状态码: {response.status}") return # 获取二进制图片数据 image_data = await response.body() # 写入本地文件 with open(save_path, 'wb') as file: file.write(image_data) print(f"图片已保存: {save_path}") async def main(): async with async_playwright() as p: browser = await p.chromium.launch(headless=True) page = await browser.new_page() # 替换为你的目标图片URL和保存路径 target_img_url = "https://example.com/your-image.png" save_location = "./downloaded_image.png" await save_image(page, target_img_url, save_location) await browser.close() if __name__ == "__main__": asyncio.run(main())
关键说明
page.request.get():Playwright异步网络请求方法,和当前页面共享浏览器环境,适合需要会话验证的图片资源response.body():异步获取响应的二进制内容,直接对应图片的原始数据- 这种方式比单独用aiohttp等请求库更适配爬虫场景,无需额外处理Cookie同步问题
内容的提问来源于stack exchange,提问作者duheng
相关产品推荐
相关产品推荐

