最小可运行示例:网页正文提取API的curl调用与字段解析

📅 2026/7/22 11:34:16
最小可运行示例:网页正文提取API的curl调用与字段解析
适用场景在日常开发中经常需要从新闻、博客、公众号等网页中提取主体正文丢弃多余的导航栏、侧栏广告、评论区域等干扰信息。手动解析HTML不仅繁琐而且难以应对不同站点的模板差异。网页正文提取API基于文本密度算法只需传入一个URL即可获得结构化的正文内容适用于内容聚合、信息采集、阅读辅助等场景。接口能力边界输入一个有效的网页URL必须包含协议头如https://输出JSON格式包含标题、纯文本正文、图片列表、发布时间、字数统计、预估阅读时长算法说明内部采用文本密度与行块分布算法自动识别文章主体区域对多数主流资讯类站点有较好提取效果QPS限制5次/秒超过限制会返回429错误数据更新接口不缓存结果每次请求实时抓取并解析目标页面鉴权与请求参数参数位置类型必填说明X-API-KeyHeaderstring是开发者密钥需在平台申请获取urlQuerystring是目标网页的完整URL需进行URL编码请求方法固定为GET无其他请求体。最小可运行示例curl以下是一个可以直接运行的curl命令将YOUR_API_KEY替换为实际密钥url替换为待提取的网页地址即可curl -sS \ -X GET \ -H X-API-Key: YOUR_API_KEY \ https://v1.apizero.cn/api/content-extract?urlhttps://apizero.cn参数说明-sS-s静默模式不显示进度-S保留错误输出便于调试-X GET明确指定请求方法可选默认即为GET-H添加请求头传递API密钥url参数直接拼接在query中若目标URL含有特殊字符如中文、符号需先进行URL编码可使用--data-urlencode的变通方式但GET请求下更推荐手动编码或使用jq等工具检查结果成功返回的HTTP状态码为200响应体为JSON数组包装在根层级实际为对象。若出现401错误请检查API Key是否正确若出现400错误请检查url参数是否缺失或无效。代码接入Python示例除了curl在真实工程中通常使用编程语言封装。以下是Python基于requests库的调用示例import requests import json API_KEY your_api_key_here # 替换为实际的密钥 BASE_URL https://v1.apizero.cn/api/content-extract target_url https://apizero.cn # 替换为目标网页 headers {X-API-Key: API_KEY} params {url: target_url} try: resp requests.get(BASE_URL, paramsparams, headersheaders, timeout10) resp.raise_for_status() # 非2xx状态码抛出异常 data resp.json() print(json.dumps(data, indent2, ensure_asciiFalse)) except requests.exceptions.RequestException as e: print(f请求异常: {e}) except json.JSONDecodeError: print(响应非JSON格式请检查URL有效性)注意事项务必设置超时timeout避免请求长时间挂起建议捕获requests.exceptions.RequestException覆盖所有网络与HTTP错误对于含中文的URLrequests库会自动编码无需手动处理返回值解读成功响应示例已省略长文本{ code: 0, msg: 成功, data: { title: 示例文章标题, content: 正文文本可能包含换行和多个段落..., word_count: 2300, reading_time: 5分钟, publish_time: 2024-01-15, images: [ https://example.com/image1.jpg, https://example.com/image2.png ], image_count: 2 } }字段说明字段类型说明codeint业务状态码0表示成功非0表示错误msgstring描述信息成功为成功错误时携带错误原因data.titlestring提取的文章标题可能为空字符串data.contentstring正文纯文本已去除HTML标签和广告模块data.word_countint正文中文与英文单词总计汉字按字符计data.reading_timestring基于字数估算的阅读时长中文按每分钟300-400字data.publish_timestring文章发布时间格式为YYYY-MM-DD若无法提取则为空data.imagesarray文章中出现的图片URL列表不含图或表情包data.image_countint图片数量注意content字段可能非常长例如超1万字若用于存储需考虑字符串长度限制publish_time依赖页面结构化数据部分网站可能无法准确获取。常见错误与排查HTTP状态码业务code可能原因处理方式40010001缺少url参数或URL格式不合法检查请求参数确保URL包含协议头40110002API Key 无效、过期或未在Header中传递核对X-API-Key的值是否与平台上一致40410003目标网页访问不到404或DNS解析失败确认目标URL可访问检查网络环境42910004超过QPS限制5次/秒降低请求频率加入重试退避策略50020001服务器内部错误可能是目标页面解析异常稍后重试若持续出现可联系技术支持-20002目标网页非HTML如PDF、图片仅支持HTML页面检查URL指向的资源类型调试建议开启curl的-v参数查看详细HTTP交互在代码中加入日志记录响应头与响应体前200字节以快速定位问题。工程化注意事项缓存策略对同一URL的提取结果可缓存一定时间如10-30分钟避免重复请求造成资源浪费和触发QPS限制。内容存储content字段可能包含换行符和特殊符号存入数据库时需做好转义若用于展示可保留原始换行但注意XSS风险。URL标准化在传入前做简单的URL规范化如补全协议、去除尾随斜杠减少因格式不一导致的重复请求。并发控制若需要批量提取建议使用信号量或队列控制并发数不超过5并使用指数退避处理429错误。Robots协议尊重虽然本API不存储数据但仍建议遵守目标网站的robots.txt规则避免法律风险。错误处理对于publish_time为空的场景可降级使用当前时间或留空对于image_count为0的情况确保前端组件能正常展示无图状态。参考文档网页正文提取API文档原始Markdown文档