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

使用Playwright获取response属性时出现NameError问题求助

修复Playwright中response未定义的错误

你遇到的NameError是因为代码里直接引用了response变量,但这个变量并未被定义——page.goto()方法会返回当前导航对应的响应对象,但你没有把它赋值给任何变量,自然无法访问它的属性。

修复步骤

  • 捕获page.goto()的返回值,赋值给response变量
  • (可选但推荐)添加判断逻辑,避免response为None时引发新错误(比如导航被拦截、页面加载失败等场景)

修复后的完整代码

from playwright.sync_api import sync_playwright

def scrape_page(url):
    with sync_playwright() as p:
        browser = p.chromium.launch()
        page = browser.new_page()
        # 捕获页面导航的响应对象
        response = page.goto(url)
        # 处理响应可能为空的情况
        if response:
            outs = {
                "url": page.url,
                "res_url": response.url,
                "res_status": response.status
            }
        else:
            outs = {
                "url": page.url,
                "res_url": None,
                "res_status": None
            }
        browser.close()
    return outs

关键说明

  • response = page.goto(url)是核心修复点:将导航操作返回的响应对象存储到变量中,之后才能访问它的url和status属性
  • 增加if response:判断:当页面导航被取消、重定向失败或网络出错时,page.goto()可能返回None,提前判断能避免触发AttributeError,让代码更健壮

内容的提问来源于stack exchange,提问作者JontroPothon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:37:09