如何继续用pyppeteer拦截请求?

问题描述

我一直在尝试制作一个程序,当用户浏览网站(并执行请求)时,它会主动拦截请求并返回这些请求的响应正文。

目前的代码似乎只是在进入站点拦截请求的详细信息,而不会在用户站点上执行操作时继续打印请求的详细信息。

我真的很感激任何帮助!

这是我目前的整个程序:

import asyncio
import json
import time
import os
from pyppeteer import launch
from datetime import datetime

args = [' --window-size=500,645']

async def intercept_network_response(response):
    # In this example,we care only about responses returning JSONs
    if "application/json" in response.headers.get("content-type",""):
        # Print some info about the responses
        print("--------------------------------------")
        print("RESPONSE:",response)
        print("URL:",response.url)
        print("Method:",response.request.method)
        print("Response headers:",response.headers)
        print("Request Headers:",response.request.headers)
        print("Response status:",response.status)
        # Print the content of the response
        try:
            # await response.json() returns the response as Python object
            print("Content: ",await response.json())
            print("--------------------------------------")
        except json.decoder.JSONDecodeError:
            # NOTE: Use await response.text() if you want to get raw response text
            print("Failed to decode JSON from",await response.text())


async def main():
    print('Launching')
    browser = await launch(headless=False,autoclose=False,args=args)
    print('opening')
    page = await browser.newPage()
    await page.setViewport({
        'width': 500,'height': 512
    })
    page.on('response',intercept_network_response)
    print('Going to site URL')
    await page.goto('https://kith.com/checkpoint')
    time.sleep(10000)
    await browser.close()


asyncio.get_event_loop().run_until_complete(main())

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)