لقطات الشاشة
يلتقط صفحة ويب أو مستند 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 | نص | png | png أو jpeg (أو jpg) أو webp أو pdf. |
image_quality | عدد صحيح | افتراضي المتصفح | من 1 إلى 100، لصيغتي jpeg و webp. |
omit_background | منطقي | false | خلفية شفافة حيث لا خلفية للصفحة (png و webp). |
response_type | نص | by_format | by_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 | نص | load | load أو 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 }
البرامج الكاملة في الأمثلة البرمجية.