from playwright.sync_api import sync_playwright
from playwright.sync_api._generated import Route
def before_request(route: Route, request):
if request.url == "http://example.com/":
route.fulfill(body="foo")
else:
route.continue_()
def on_response(response):
print(response.body())
def on_frame_sent(frame):
print("sent", frame)
def on_received(frame):
print("received", frame)
def on_websocket(websocket):
websocket.on("framesent", on_frame_sent) # 从此处进去可发现websocket on的event有哪些
websocket.on("framereceived", on_received)
websocket.on("onMessage", lambda message: print("message", message))
def main():
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp('http://localhost:9222/')
page = browser.contexts[0].pages[-1]
page.on("websocket", on_websocket) # 从此处进去可发现on的event有哪些
# page.goto("http://example.com")
page.wait_for_timeout(100000)
main()
从page.on点进去,可以发现提供了监听websocket的方法
打断点到websocket.on上,单步进入,可以看到websocket的on方法的event事件
轻松实现某音弹幕抓取