Pyppeteer: AJAX-JSON-Antwort abfangen

English Deutsch

Dieses Beispiel zeigt Ihnen, wie Sie den Inhalt einer JSON-Antwort, die über eine AJAX-Anfrage auf einer Webseite angefordert wurde, mit Pyppeteer abfangen und ausgeben:

pyppeteer_intercept_ajax.py
import asyncio
import json
from pyppeteer import launch

async def intercept_network_response(response):
    # In diesem Beispiel interessieren wir uns nur für Antworten, die JSONs zurückgeben
    if "application/json" in response.headers.get("content-type", ""):
        # Informationen über die Antworten ausgeben
        print("URL:", response.url)
        print("Methode:", response.request.method)
        print("Antwort-Header:", response.headers)
        print("Anfrage-Header:", response.request.headers)
        print("Antwort-Status:", response.status)
        # Den Inhalt der Antwort ausgeben
        try:
            # await response.json() gibt die Antwort als Python-Objekt zurück
            print("Content: ", await response.json())
        except json.decoder.JSONDecodeError:
            # HINWEIS: Verwenden Sie await response.text(), wenn Sie den rohen Antworttext erhalten möchten
            print("Failed to decode JSON from", await response.text())

async def main():
    browser = await launch()
    page = await browser.newPage()

    page.on('response', intercept_network_response)

    await page.goto('https://instagram.com')
    await browser.close()

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

Check out similar posts by category: Puppeteer, Pyppeteer, Python