GraphQL integrate, data correctness

This commit is contained in:
Tour
2025-12-07 00:25:25 +01:00
parent 8c5f6016ec
commit 71567fd965
17 changed files with 1037 additions and 13 deletions

53
extract_graphql_query.py Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
"""Extract the GraphQL query being used"""
import asyncio
import json
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
graphql_requests = []
async def capture_request(request):
if 'graphql' in request.url:
graphql_requests.append({
'url': request.url,
'method': request.method,
'post_data': request.post_data,
'headers': dict(request.headers)
})
page.on('request', capture_request)
await page.goto("https://www.troostwijkauctions.com/l/%25282x%2529-duo-bureau-160x168-cm-A1-28505-5", wait_until='networkidle')
await asyncio.sleep(2)
print(f"Captured {len(graphql_requests)} GraphQL requests\n")
for i, req in enumerate(graphql_requests):
print(f"{'='*60}")
print(f"REQUEST #{i+1}")
print(f"{'='*60}")
print(f"URL: {req['url']}")
print(f"Method: {req['method']}")
if req['post_data']:
try:
data = json.loads(req['post_data'])
print(f"\nQuery Name: {data.get('operationName', 'N/A')}")
print(f"\nVariables:")
print(json.dumps(data.get('variables', {}), indent=2))
print(f"\nQuery:")
print(data.get('query', '')[:1000])
except:
print(f"\nPOST Data: {req['post_data'][:500]}")
print()
await browser.close()
if __name__ == "__main__":
asyncio.run(main())