wik*_*iki 5 selenium websocket python-3.x
我们在 python 上使用 selenium,作为自动化的一部分,我们需要捕获示例网站在网页完全加载后发送和接收的消息。
我在这里检查过,据说我们想要做的事情是可以使用的,BrowserMobProxy但经过测试,websocket 连接在网站上不起作用,证书错误也很麻烦。
在这里的另一篇文章中指出,这可以使用loggingPrefsof来完成,Chrome但似乎我们只获取网站加载时的日志,而不是之后的数据。
是否可以仅使用 selenium 捕获 websocket 流量?
wik*_*iki 15
事实证明,可以使用 ; 来完成pyppeteer。在以下代码中,正在捕获示例网站的所有实时 Websocket 流量:
import asyncio
from pyppeteer import launch
async def main():
browser = await launch(
headless=True,
args=['--no-sandbox'],
autoClose=False
)
page = await browser.newPage()
await page.goto('https://www.tradingview.com/symbols/BTCUSD/')
cdp = await page.target.createCDPSession()
await cdp.send('Network.enable')
await cdp.send('Page.enable')
def printResponse(response):
print(response)
cdp.on('Network.webSocketFrameReceived', printResponse) # Calls printResponse when a websocket is received
cdp.on('Network.webSocketFrameSent', printResponse) # Calls printResponse when a websocket is sent
await asyncio.sleep(100)
asyncio.get_event_loop().run_until_complete(main())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3239 次 |
| 最近记录: |