使用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
相关产品推荐
相关产品推荐

