在启用拦截器拦截响应时抛出错误(如标题),且拦截失败
我的代码:

async def runBrowser(url, pageData, UserAgent=None):
    from pyppeteer.network_manager import Response

    async def get_content(response: Response):
        if 'mgp.api.mucfc.com/?operationId=mucfc.content.post.query' in response.url:
            content = await response.text()
            pageData.append(content)

    # "创建一个浏览器实例 browser 对象"
    if "--enable-automation" in launcher.DEFAULT_ARGS:
        launcher.DEFAULT_ARGS.remove("--enable-automation")
    browser = await launch({
        'handleSIGINT': False,
        'handleSIGTERM': False,
        'handleSIGHUP': False,  # 以上禁用信号
        'headless': False,
        'dumpio': True,
        'autoClose': False,  # 避免长时间运行 内存泄漏
        'args': [
            '--no-sandbox',  # 禁止沙箱模式
            '--no-default-browser-check',  # 不检查默认浏览器
            '--disable-extensions',
            '--hide-scrollbars',
            '--disable-bundled-ppapi-flash',
            '--mute-audio',
            '--disable-setuid-sandbox',
            '--disable-gpu',
            "--window-size=1000,900",
            "--disable-infobars"  # 禁止提示 浏览器被驱动的提示信息
        ],
    })
    page = await browser.newPage()  # "通过 Browser 对象创建页面 Page 对象"
    # 启用拦截器
    page.on("response", get_content)
    if UserAgent:
        await page.setUserAgent(UserAgent)
    await page.setViewport({"width": 1000, "height": 900})  # 改变 页面大小
    await page.goto(url)
    await page.evaluateOnNewDocument('() =>{ Object.defineProperties(navigator,'
                                     '{ webdriver:{ get: () => undefined } }) }')  # 本页刷新后值不变

    await page.waitForSelector('.tabs__list__item__not-active', {'timeout':60000})
    await asyncio.sleep(2)
    await page.click('div.tabs__list__item__not-active:nth-child(3)')
    await page.waitForSelector('.news-item__title', {'timeout':60000})

    await page.close()
    await browser.close()


pageData = []
url = 'https://www.mucfc.com/zl_news#/'
loop1 = asyncio.new_event_loop()  # 创建一个事件循环
asyncio.set_event_loop(loop1)
loop = asyncio.get_event_loop()  # 创建一个事件循环
loop.run_until_complete(runBrowser(url, pageData))  # 将协程加入到事件循环loop
loop.close()

print(pageData)

参考:https://github.com/pyppeteer/pyppeteer/issues/220

解决办法:

一、给 pyee 版本降级

pip install 'pyee==7.0.4' --force-reinstall

二、用 asyncio 包装(测试可用)
修改前:

page.on('response', get_content)

修改后:

page.on('response', lambda response: asyncio.ensure_future(get_content(response)))