Skip to main content
POST https://api.acedata.cloud/webextrator/extract WebExtrator API الذكاء الاصطناعي يقوم بتحويل URL إلى نتائج هيكلية مصنفة — مقالات، منتجات، وصفات، فيديوهات، مناقشات، توظيف، إلخ، مع توفير Markdown و نص عادي مُنظف. عندما تريد “بيانات هيكلية نظيفة” بدلاً من HTML الخام، هذا هو الواجهة التي يجب استخدامها. الأساس هو خط أنابيب ثلاثي الطبقات:
  1. مُحوّل schema.org JSON-LD — حتمي، بدون تكلفة LLM. يغطي Wikipedia / BestBuy / AllRecipes / YouTube / معظم الأخبار / معظم صفحات المنتجات.
  2. استخراج LLM مصنف — يتم تفعيله فقط عندما لا يتم العثور على schema.org. اختر Schema حسب نوع الصفحة، تحقق صارم باستخدام Zod.
  3. Readability + Markdown كحل احتياطي — يعمل دائمًا، يكمل الحقول العليا التي لم يتم ملؤها في الطبقتين السابقتين.
طلبات URL المتكررة سيتم التقاطها بواسطة ذاكرة التخزين المؤقت Redis، <1 ms للعودة.

عملية التقديم

لاستخدام صفحة خدمة WebExtrator، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على رمز API الخاص بك، احتفظ به للاستخدام لاحقًا. إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء سيتم إرجاعك تلقائيًا إلى الصفحة الحالية. رمز API واحد يكفي لاستدعاء جميع خدمات المنصة، دون الحاجة لتقديم طلب منفصل لكل خدمة. الطلب الأول سيمنحك رصيدًا مجانيًا، يمكنك تجربته مجانًا؛ عند نفاد الرصيد يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثائق الكاملة: صفحة خدمة WebExtrator →

التحقق من الهوية

معلمات الطلب

تقبل Extract جميع معلمات Render API (url، user_agent، timeout، wait_until، delay، wait_for_selector، block_resources، headers، cookies، callback_url، bypass_cache، cache_ttl_seconds، async)، بالإضافة إلى حقلين خاصين بـ Extract:
عندما تحتوي الصفحة على schema.org JSON-LD، يكون enable_llm غير فعال — المُحوّل الحتمي يعطي النتائج مباشرة، لن يتم إهدار استدعاء LLM. أنت تحصل مجانًا على نتائج مصنفة.

استجابة متزامنة

الحقول العليا

الحقول الفرعية لـ data.structured

schema.org 映射器覆盖范围

按优先级排序(命中即作为 structured.schemaOrg.primary): 映射器处理:
  • @graph 容器(递归展开);
  • @type 数组(如 ["Recipe", "NewsArticle"] —— 两个都识别,按优先级取胜);
  • http://schema.org/ 前缀变体;
  • 嵌套 OfferAggregateOffer(后者读 lowPrice);
  • 相对图像 URL(按 finalUrl 解析为绝对)。

LLM 类型化 Schema

enable_llm: true schema.org 没有 primary 时,抽取器按 URL 启发式 (或 expected_type 提示)选下面之一的 Zod Schema 校验模型输出: LLM 成功时还会向顶层字段做”last-resort”回填:
  • articledescription / byline / publishedAt / language
  • productdescription
  • discussiondescription(= body 前 280 字)/ byline(= author)/ publishedAt(= postedAt)
  • recipedescription / byline(= author)
  • videodescription / byline(= channel)/ publishedAt(= uploadDate)
  • jobdescription / byline(= company)/ publishedAt(= datePosted)
回填只在确定性数据源没填对应字段时触发 —— LLM 始终是最后一道兜底。

缓存

相同请求会被哈希到同一个 Redis Key: webextrator:cache:extract:<sha256(canonical-json)>。缓存 Key 忽略 asyncbypass_cachecache_ttl_seconds(这是操作开关,不影响响应)。cookies / headers 分桶缓存。 命中缓存的响应会带上 data.cached: truedata.cacheStoredAt: <unix-ms>

异步模式与回调

设置 async: true 进入异步模式(提供 callback_url 也会自动进入)。平台立即返回(HTTP 200):
任务完成时把完整 envelope POST 到你的 callback_url(如果配置了)。也可以事 后通过 /webextrator/tasks 主动查询。

示例

1. Wikipedia 文章(schema.org 命中,不需要 LLM)

data.structured.schemaOrg.primary 关键字段:

2. صفحة منتج BestBuy (schema.org)

استخراج schema.org:

3. صفحة وصفة AllRecipes (بما في ذلك التغذية والخطوات)

استخراج schema.org:

4. صفحة مناقشة HN (بدون JSON-LD - تحتاج إلى تفعيل LLM)

data.structured.llm.data:
تم ملء الحقول العليا أيضًا: byline = "alice"، publishedAt = "...".

5. صفحة منتج Amazon (Amazon بدون JSON-LD - تحتاج إلى تفعيل LLM)

data.structured.llm.data (نوع product):

بايثون (requests)

Node.js (fetch)

نصائح ومشاكل

  • إذا كان بالإمكان تمرير expected_type، فافعل ذلك. نصيحة مجانية، تخطي الحكم الاستدلالي، مفيد بشكل خاص للصفحات التي لا تتواجد في القائمة المدمجة.
  • enable_llm: true على الصفحات التي تم تحديدها بواسطة schema.org مجانية. يتم استدعاء LLM فقط عندما لا يكون هناك primary في schema.org، لذا فإن تركه مفعلًا بشكل افتراضي آمن.
  • عند التصحيح، تحقق أولاً من rawSignals.hasJsonLd. إذا كانت true ولكن structured.schemaOrg.primary كانت null، فهذا يعني أن الصفحة استخدمت نوعًا لم يتم تغطيته بعد بواسطة المترجم الخاص بنا - قدم مشكلة وسنضيفه.
  • structured.llmError هو معلوماتي. الطلب لا يزال ناجحًا، والنتائج الاستدلالية لا تزال تعود. تحقق من llmError.error لتحديد السبب (انتهاء الوقت، فشل تحليل JSON، فشل تحقق Zod).
  • الروابط غير المتعلقة بالصفحات غير المقالات لن يتم ترتيبها حسب الصلة. فقط حسب “حد أقصى 100 عنصر + تصفية البروتوكولات غير الصالحة” يتم تنظيفها بأفضل ما يمكن.
  • تُحتسب أيضًا الضربات على التخزين المؤقت. التخزين المؤقت مصمم لتقليل التأخير وحماية مجموعة المتصفح، وليس لتوفير المال.