网站 SEO 审计工具提供 40 + 项 SEO 全维度检测,覆盖页面基础、语义结构、链接健康、媒体优化、技术 SEO等,输出标准化 JSON 结果,一站式完成网站 SEO 体检、问题定位与优化分析。
你可以通过 CoreClaw API,在自己的应用中以编程方式调用 Worker。在下方选择你偏好的开发语言。使用 CoreClaw API 前,需要先注册 CoreClaw 账号并获取 API 密钥——在控制台的概览页中即可找到.
#!/usr/bin/env python3
import requests
import json
from typing import Dict, Any, Optional
# API URL
API_URL = "https://openapi.coreclaw.com/api/v1/scraper/run"
# Your API KEY
API_KEY = "<YOUR_API_KEY>"
# Curl timeout (seconds)
TIMEOUT = 30
def run_scraper(params: Dict[str, Any], api_key: str) -> Dict[str, Any]:
headers = {
"api-key": api_key,
"Content-Type": "application/json"
}
try:
# Send POST request
response = requests.post(
API_URL,
headers=headers,
json=params,
timeout=TIMEOUT
)
# Check HTTP status code
if response.status_code != 200:
return {
"success": False,
"run_slug": None,
"error": f"HTTP error: {response.status_code} - {response.text}"
}
# Parse response
result = response.json()
# Check business error code
if result.get("code") != 0:
return {
"success": False,
"run_slug": None,
"error": f"Business error: {result.get("message", "Unknown error")} (code: {result.get("code")})"
}
# Return success result
return {
"success": True,
"run_slug": result.get("data", {}).get("run_slug"),
"error": None
}
except requests.exceptions.Timeout:
return {
"success": False,
"run_slug": None,
"error": f"Request timeout after {TIMEOUT} seconds"
}
except requests.exceptions.RequestException as e:
return {
"success": False,
"run_slug": None,
"error": f"Request error: {str(e)}"
}
except json.JSONDecodeError as e:
return {
"success": False,
"run_slug": None,
"error": f"JSON decode error: {str(e)}"
}
def main():
# Build request parameters
request_params = {
"scraper_slug": "01KG2DV66JTCN65ZBTRX3M456E",
"version": "v1.0.8",
"input": {
"parameters": {
"system": {
"proxy_region": "",
"cpus": 0.125,
"memory": 512,
"execute_limit_time_seconds": 1800,
"max_total_charge": 0,
"max_total_traffic": 0
},
"custom": {
"startUrl": [
{
"url": "https://coreclaw.com"
},
{
"url": "https://docs.coreclaw.com"
}
],
"maxRequestsPerCrawl": 10,
"maxDepth": null,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36",
"pageTimeout": 60000,
"maxRequestRetries": 2,
"handlePageTimeoutSecs": 3600,
"seoParams": {
"brokenStatusCodes": [
404,
410
],
"checkExternalImages": false,
"checkExternalLinks": false,
"ignoredLinkStatusCodes": [
0,
401,
403,
429
],
"maxLinksCount": 3000,
"maxMetaDescriptionLength": 140,
"maxTitleLength": 70,
"maxWordsCount": 350,
"minTitleLength": 10,
"outputLinks": false,
"workingStatusCodes": [
200,
301,
302,
304
]
}
}
}
},
"callback_url": "https://your-domain.com/callback"
}
# Send request
print("Sending request to API...")
result = run_scraper(request_params, API_KEY)
# Handle result
if result["success"]:
print("Worker run successful!")
print(f"Run ID: {result['run_slug']}")
print("You can use this ID to query run status and results")
else:
print("Request failed!")
print(f"Error message: {result['error']}")
if __name__ == "__main__":
main()