Spaces:
Running
Running
| import requests | |
| import json | |
| import time | |
| API_URL = "https://ubuntu593-alt-scraper-api.hf.space/api/seo-report" | |
| DOMAINS_TO_TEST = [ | |
| {"url": "https://www.example.com", "limit": 1, "desc": "Simple Static Site"}, | |
| {"url": "https://www.google.com", "limit": 1, "desc": "Big Tech (High Robustness)"}, | |
| {"url": "https://www.wikipedia.org", "limit": 2, "desc": "Content Heavy"}, | |
| {"url": "https://www.amazon.in", "limit": 1, "desc": "Anti-Bot Heavy (Amazon)"}, | |
| ] | |
| def run_tests(): | |
| print(f"Starting Live API Tests against: {API_URL}\n") | |
| print("-" * 60) | |
| results = [] | |
| for item in DOMAINS_TO_TEST: | |
| domain = item['url'] | |
| limit = item['limit'] | |
| desc = item['desc'] | |
| print(f"Testing: {domain} ({desc})...", end=" ", flush=True) | |
| start_time = time.time() | |
| try: | |
| # We use a POST or GET. The API supports both, let's try POST for parameters. | |
| payload = {"domain": domain, "limit": limit} | |
| response = requests.post(API_URL, json=payload, timeout=60) | |
| elapsed = time.time() - start_time | |
| if response.status_code == 200: | |
| data = response.json() | |
| summary = data.get('summary', {}) | |
| discovered = summary.get('total_pages_discovered', 0) | |
| images = summary.get('total_images_found', 0) | |
| print(f"SUCCESS ({elapsed:.2f}s)") | |
| print(f" -> Pages Scanned: {summary.get('total_pages_scanned')}") | |
| print(f" -> Images Found: {images}") | |
| print(f" -> Details: {summary}") | |
| results.append({"domain": domain, "status": "PASS", "time": elapsed, "data": summary}) | |
| else: | |
| print(f"FAILED ({response.status_code})") | |
| print(f" -> Response: {response.text[:200]}") | |
| results.append({"domain": domain, "status": "FAIL", "code": response.status_code}) | |
| except Exception as e: | |
| print(f"ERROR: {str(e)}") | |
| results.append({"domain": domain, "status": "ERROR", "error": str(e)}) | |
| print("-" * 60) | |
| # Final Summary | |
| print("\nTEST SUMMARY") | |
| print("=" * 60) | |
| for res in results: | |
| status_icon = "[PASS]" if res['status'] == "PASS" else "[FAIL]" | |
| print(f"{status_icon} {res['domain']:<30} | {res['status']}") | |
| print("=" * 60) | |
| if __name__ == "__main__": | |
| run_tests() | |