قائمة التوثيق

البداية

مرجع الواجهة البرمجية

أدلة

الثقة والدعم

لقطات الشاشة

يلتقط صفحة ويب أو مستند HTML صورةً أو ملف PDF. تتبع المعاملات واجهة ScreenshotOne.

GET  https://api.sahifa.dev/take?access_key=...&url=https://example.com
POST https://api.sahifa.dev/take   (JSON body with the same parameters)

تقبل الطريقتان المعاملات نفسها. GET مناسبة للالتقاطات البسيطة؛ واستخدم POST مع جسم JSON لمصادر HTML وقوائم المعاملات الطويلة. جسم الاستجابة هو الملف، وتعطي X-Response-Duration زمن الإنشاء بالمللي ثانية.

المعاملات

المصدر والمُخرَج

الاسمالنوعالافتراضيالوصف
urlنصأحدهماعنوان http(s):// عام لالتقاطه.
htmlنصأحدهمامستند HTML لالتقاطه. أرسل واحدًا فقط من url و html.
formatنصpngpng أو jpeg (أو jpg) أو webp أو pdf.
image_qualityعدد صحيحافتراضي المتصفحمن 1 إلى 100، لصيغتي jpeg و webp.
omit_backgroundمنطقيfalseخلفية شفافة حيث لا خلفية للصفحة (png و webp).
response_typeنصby_formatby_format يُعيد الملف؛ و json يُعيد { "success", "content_type", "data" (base64), "size" }.

إطار العرض والمساحة

الاسمالنوعالافتراضيالوصف
viewport_widthعدد صحيح1280عرض المتصفح بوحدات بكسل CSS.
viewport_heightعدد صحيح720ارتفاع المتصفح بوحدات بكسل CSS.
device_scale_factorعدد1كثافة البكسل، حتى 4. القيمة 2 تعطي صورة حادة للشاشات عالية الدقة، بأربعة أضعاف البكسلات.
full_pageمنطقيfalseالتقاط الصفحة القابلة للتمرير كاملة، لا إطار العرض فقط.
selectorنصبلامحدِّد CSS لعنصر واحد يُلتقط. إذا لم يطابق أي عنصر تكون الاستجابة 404. لا يُجمع مع full_page.
clip_x و clip_y و clip_width و clip_heightعدد صحيحبلاالتقاط مستطيل من الصفحة. العرض والارتفاع مطلوبان.

سلوك الصفحة

الاسمالنوعالافتراضيالوصف
wait_untilنصloadload أو domcontentloaded أو networkidle أو commit. استخدم networkidle للصفحات المبنية بجافاسكربت.
wait_for_selectorنصبلاالانتظار حتى يظهر عنصر يطابق هذا المحدِّد.
delayعدد0انتظار إضافي بعد التحميل، بالثواني، حتى 30. تنبيه: delay في نقطة نهاية PDF بالمللي ثانية، كما في PDFShift.
timeoutعدد30أقصى زمن للإنشاء بالثواني، بحد أقصى 30.
dark_modeمنطقيfalseمحاكاة نظام الألوان الداكن (prefers-color-scheme: dark).
reduced_motionمنطقيfalseمحاكاة prefers-reduced-motion: reduce، مما يوقف كثيرًا من الحركات.
user_agentنصChromiumوكيل مستخدم مخصص.
authorizationنصبلاقيمة ترويسة Authorization المرسلة إلى الصفحة.
headersنص أو قائمةبلاترويسات إضافية بصيغة Name=value؛ كرّر المعامل لعدة ترويسات.
cookiesنص أو قائمةبلاملفات تعريف ارتباط بصيغة name=value؛ كرّر المعامل لعدة ملفات.
cacheمنطقيfalseمقبول للتوافق ويُتجاهَل: كل طلب يُنشأ من جديد ولا يُخزَّن شيء مؤقتًا.

الحجب والإخفاء

الاسمالنوعالافتراضيالوصف
block_cookie_bannersمنطقيfalseإخفاء نوافذ الموافقة على ملفات تعريف الارتباط وإعادة التمرير. يشمل منصات الموافقة الشائعة (OneTrust و Sourcepoint و Didomi و Quantcast و Usercentrics و Cookiebot و TrustArc و consentmanager وغيرها). يضيف نحو ثانية.
block_adsمنطقيfalseحجب طلبات الإعلانات وإخفاء أماكنها (EasyList).
block_trackersمنطقيfalseحجب طلبات التتبع والتحليلات (EasyPrivacy). كثيرًا ما يسرّع تحميل الصفحات.
block_chatsمنطقيfalseحجب نوافذ الدردشة وإخفاؤها (Intercom و Drift و Crisp و Tidio و Tawk و Zendesk و Freshchat و LiveChat و Olark و HubSpot).
hide_selectorsنص أو قائمةبلامحدِّدات CSS لإخفائها، مفصولة بفواصل أو مكررة.
block_requestsنص أو قائمةبلاأنماط عناوين لحجبها، مع * كحرف بدل، مثل *.example.org/track*.
block_resourcesنص أو قائمةبلاأنواع الموارد المحجوبة: image و font و media و script و stylesheet و xhr و fetch و websocket و other.

قوائم الحجب مدمجة في الخادم، فلا يضيف الحجب أي طلبات خارجية.

غير مدعوم

تُرفض store و storage_* و async و webhook_url بالرمز 400، لأن صحيفة لا تخزّن الملفات. ويُرفض أيضًا block_banners_by_heuristics؛ استخدم block_cookie_banners و hide_selectors.

أمثلة

صفحة كاملة دون نوافذ ملفات تعريف الارتباط

GET /take?access_key=KEY&url=https://example.com&full_page=true&block_cookie_banners=true

عنصر واحد بدقة عالية

GET /take?access_key=KEY&url=https://example.com&selector=%23pricing&device_scale_factor=2

من HTML إلى JPEG

POST /take
X-API-Key: KEY
Content-Type: application/json

{ "html": "<h1 dir=\"rtl\">مرحبا</h1>", "format": "jpeg", "image_quality": 85, "viewport_width": 800, "viewport_height": 400 }

البرامج الكاملة في الأمثلة البرمجية.