You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:16:12