Chromium على عنوان URL
Chromium بلا واجهة أو مرئي، قابل للتحكم عبر HTTP API مسطح. وضع التخفي افتراضياً، CDP WebSocket متاح، يعمل مع Puppeteer.
1 · إطلاق نسخة متخفية من Chromium
$ curl "/start?browser_id=main&stealth=true&timezoneId=America/New_York&locale=en-US"
{ "browser_id": "main",
"webSocketDebuggerUrl": "ws://.../devtools/browser/...",
"stealth": true }
2 · انتقل إلى أي عنوان URL
$ curl "/browse?browser_id=main&url=https://hoody.com"
200 OK
3 · التقاط لقطة شاشة لكامل الصفحة
$ curl "/screenshot?browser_id=main&format=png" -o shot.png
1920x1080 PNG
تشغيل متصفح حقيقي والمراقبة والفحص عبر HTTP
كل نسخة متصفح تكشف نفس الأوليات التي يعتمد عليها Puppeteer وPlaywright — تنقل، DOM، لقطات شاشة، CDP.
ابدأ نسخة، وجّهها نحو عنوان URL
GET /start spawns a stealth Chromium with your fingerprint. GET /browse?url=… loads a page. One HTTP roundtrip, no driver install, no docker image to maintain.
نفّذ JS في الصفحة، أعِد بيانات منظمة
اسحب المحتوى باستخدام /eval أو /html أو /text — اقرأ document.title أو اكشط DOM بالكامل.
التقط لقطة شاشة أو PDF للصفحة الحالية
التقط لقطة للصفحة بصيغة PNG أو JPEG أو PDF، لكامل الصفحة أو لإطار العرض فقط.
احصل على عناوين CDP، مرّرها لأي شيء
اقرأ مخزني console والشبكة المؤقتين بسعة 500 إدخال إضافةً إلى البيانات الوصفية للنسخة بغرض التصحيح.
لقطة شاشة ← قرار ← نقر، في حلقة
الشكل الذي تتوقعه كل نماذج Computer-Use: لقطة شاشة، لقطة DOM، طريقة للنقر على (x, y). المتصفح يعرض هذه عبر HTTP عادي — ضعه خلف Claude Computer Use أو Operator من OpenAI أو وكيلك الخاص.
docker run chromium + fonts + fingerprint patches
curl /start?stealth=true → ready
تشغيل Chromium وتشغيله وإيقافه عبر HTTP
كل نقطة نهاية تعيد JSON حتمياً أو ثنائياً. بلا تحليل stderr، بلا ملفات /tmp، بلا ظروف تسابق.
# Full Browser flow — start, navigate, extract, shutdown
URL="https://abc123-def456-browser-1.node-us-1.containers.hoody.com"
ID="main"
# 1. Spawn a stealth Chromium (Patchright)
curl -s "$URL/start?browser_id=$ID&stealth=true"
# 2. Navigate to a page
curl -s "$URL/browse?browser_id=$ID&url=https://example.com"
# 3. Read the page title back
curl -s -X POST "$URL/eval?browser_id=$ID" \
-H 'Content-Type: application/json' \
-d '{"script":"document.title"}'
# > { "result": "Example Domain" }
# 4. Release the slot
curl -s "$URL/shutdown?browser_id=$ID"
// Full Browser flow — start, navigate, extract, shutdown
const BASE = 'https://abc123-def456-browser-1.node-us-1.containers.hoody.com';
const id = 'main';
// 1. Spawn a stealth Chromium (Patchright)
const start = await fetch(`${BASE}/start?browser_id=${id}&stealth=true`);
const { webSocketDebuggerUrl } = await start.json();
// 2. Navigate to a page
await fetch(`${BASE}/browse?browser_id=${id}&url=https://example.com`);
// 3. Read the page title back
const r = await fetch(`${BASE}/eval?browser_id=${id}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ script: 'document.title' })
});
const { result } = await r.json();
// => "Example Domain"
// 4. Release the slot
await fetch(`${BASE}/shutdown?browser_id=${id}`);
# Full Browser flow — start, navigate, extract, shutdown
import requests
BASE = 'https://abc123-def456-browser-1.node-us-1.containers.hoody.com'
id = 'main'
# 1. Spawn a stealth Chromium (Patchright)
start = requests.get(f'{BASE}/start', params={'browser_id': id, 'stealth': 'true'})
ws = start.json()['webSocketDebuggerUrl']
# 2. Navigate to a page
requests.get(f'{BASE}/browse', params={'browser_id': id, 'url': 'https://example.com'})
# 3. Read the page title back
r = requests.post(f'{BASE}/eval',
params={'browser_id': id},
json={'script': 'document.title'})
title = r.json()['result']
# => "Example Domain"
# 4. Release the slot
requests.get(f'{BASE}/shutdown', params={'browser_id': id})
أين تنشر الفرق المتصفح
طبقة HTTP مسطحة فوق Chromium تفتح نقاط تكامل يستحيل تحقيقها بمتصفح بلا واجهة مثبت محلياً.
خطوط بيانات
استوعب HTML وJSON المعروضة في مستودعك. جدوِل استدعاءات /eval، مرّر النتائج إلى Snowflake أو BigQuery.
أطر وكلاء الذكاء الاصطناعي
اندمج مع Claude Computer Use أو OpenAI Operator أو أدوات المتصفح في LangChain. لقطة شاشة + eval هو الواجهة.
سير عمل بمصادقة
شغّل لوحات التحكم المسجّلة — لوحات SaaS وبوابات بنوك وأدوات داخلية. POST /cookies تثبّت الجلسة عبر الطلبات.
تطبيقات مراجعة
معاينات المتصفح لكل طلب سحب. CI ينشئ نسخة متصفح على البناء المُدرج ويعيد لقطة /devtools.
مراقبة مجدولة
التقاطات /screenshot و/network مُشغَّلة بـ Cron لرصد وقت التشغيل ومستوى الخدمة ولوحات الأداء.
لقطات الامتثال
التقاطات موقوتة ومُثبَّتة البصمة لصفحات طرف ثالث للأغراض القانونية والتدقيق والأدلة.
23 عملية، 4 مجموعات نقاط نهاية
كل قدرة في المتصفح هي استدعاء HTTP مسطح. متغيرات الطريقة على نفس المسار مُدرجة بشكل منفصل.
التفاعل
8 نقطة نهايةcurl /browse?browser_id=main&url=https://example.com → { tabId, url, created, reused }
حالة الجلسة
5 نقطة نهايةcurl -X POST /cookies -d '{ cookies: [{ name, value, url }] }' → { added: 2 }
الاستبطان
6 نقطة نهايةcurl /devtools-url?browser_id=main → { webSocketDebuggerUrl, devtoolsHttpUrl, devtoolsFrontendUrl }
دورة الحياة
5 نقطة نهايةcurl /start?browser_id=main&stealth=true → { browser_id, webSocketDebuggerUrl, stealth: true }
24 نقطة نهاية موزّعة على أربعة مجالات وظيفية. 23 منها تعمل على عنوان حاوية الـ browser باستخدام المسارات القصيرة المعروضة؛ أما فحص السلامة فهو الاستثناء الوحيد، ويُقدَّم من الـ API المركزي على api.hoody.com/api/v1/browser/health. تتبع الطرق ما في الوثائق: browse و eval يقبلان GET و POST؛ و cookies يضيف GET و POST و DELETE.
التخفي وبصمة المتصفح وCDP — بدون تكاليف الإعداد
المتصفح هو طبقة رفيعة فوق Chromium — كل ما ستثبّته وترقّعه وتراقبه هو معامل استعلام.
انتحال بصمة المتصفح
اضبط UA وإعدادات العرض والمنطقة الزمنية واللغة والموقع الجغرافي على /start — أو أشِر إلى fingerprintId.
وضع التخفي
الكشف المضاد Patchright مفعّل بشكل افتراضي لـ Chromium. ليس منيعاً ضد كل موردي الكشف.
مرور CDP
تعيد نقطة النهاية /devtools-url اتصال WebSocket يمكنك التحكم به عبر Puppeteer أو Playwright أو أي عميل CDP.
الوكيل وDoH
بروكسيات SOCKS5 وSO CKS5h وHTTP وHTTPS مع المصادقة وقوائم الاستثناء. DNS-over-HTTPS عبر Cloudflare افتراضياً.
قنوات Chromium
ثبّت أي بناء Chromium — سلسلة الإصدار الكاملة، الإصدار الرئيسي، أو القناة (stable / beta / dev / canary).
مخازن حلقية للتصحيح
آخر 500 إدخال في وحدة التحكم و500 إدخال شبكة لكل نسخة، بالإضافة إلى سجل تصفح مستمر.
أضف متصفحاً حقيقياً إلى حزمتك
المتصفح هو إحدى خدمات Kit المُدرجة مع كل حاوية. بلا تثبيت برامج تشغيل، بلا Puppeteer، بلا إعداد.