为了账号安全,请及时绑定邮箱和手机立即绑定

Python:在 pyppeteer 中保持打开浏览器并创建 CDPSession

Python:在 pyppeteer 中保持打开浏览器并创建 CDPSession

慕容708150 2021-07-15 18:01:21
我有两个问题暂时无法解决。1.我想让浏览器保持运行,这样我就可以使用pyppeteer.launcher.connect()函数重新连接,但即使我不调用它,它似乎也被关闭了pyppeteer.browser.Browser.close()。测试01.py:import asynciofrom pyppeteer import launch, connectasync def fetch():    browser = await launch(        headless=False,        args=['--no-sandbox']    )    print(f'Endpoint: {browser.wsEndpoint}')    await browser.disconnect()loop = asyncio.get_event_loop()loop.run_until_complete(fetch())$ python test01.pyEndpoint: ws://127.0.0.1:51757/devtools/browser/00e917a9-c031-499a-a8ee-ca4090ebd3fe$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" http://127.0.0.1:51757curl: (7) Failed to connect to 127.0.0.1 port 51757: Connection refused2.如何创建 CDP 会话。此代码应该打开另一个浏览器窗口,但它没有按预期工作:测试02.pyimport asyncioimport timefrom pyppeteer import launch, connectasync def fetch():    browser = await launch(        headless=False,        args=['--no-sandbox']    )    page = await browser.newPage()    cdp = await page.target.createCDPSession()    await cdp.send('Target.createBrowserContext')    time.sleep(5)    await browser.disconnect()loop = asyncio.get_event_loop()loop.run_until_complete(fetch())$ python test02.pyFuture exception was never retrievedfuture: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.',)>pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 718 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号