Chromium على عنوان URL
Chromium بلا واجهة أو مرئي، قابل للتحكم عبر HTTP API مسطح. وضع التخفي افتراضياً، CDP WebSocket متاح، يعمل مع Puppeteer.
# Spawn a stealth Chromium with a fingerprint
$ curl "/start?browser_id=main&stealth=true&timezoneId=America/New_York&locale=en-US"
[ "browser_id": "main",
"webSocketDebuggerUrl": "ws://.../devtools/browser/...",
"stealth": true ]
# Navigate — or pass the WS URL to Puppeteer
$ curl "/browse?browser_id=main&url=https://hoody.com"
200 OK
# Capture; already works with your existing CDP client
$ 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 في الصفحة، أعِد بيانات منظمة
POST /eval runs arbitrary JavaScript in page context. GET /html and GET /text return the rendered DOM and visible text. No selector library, no headless-browser SDK.
التقط لقطة شاشة أو PDF للصفحة الحالية
GET /screenshot returns PNG, JPEG, or base64 — fullPage or viewport. GET /pdf renders to A4/Letter with landscape + margins. Binary comes back directly; no headless-Chrome flags to wrangle.
احصل على عناوين CDP، مرّرها لأي شيء
GET /devtools-url returns three URLs: the CDP WebSocket (for Puppeteer / Playwright / any CDP client), the DevTools HTTP API, and the DevTools frontend UI. Open the frontend URL in a browser tab to watch what the headless instance sees.
لقطة شاشة ← قرار ← نقر، في حلقة
الشكل الذي تتوقعه كل نماذج 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://proj-dev-browser-1.hoody.com"
ID="main"
# 1. Spawn a stealth Chromium
curl -s "$URL/start?browser_id=$ID&stealth=true"
# 2. Navigate
curl -s "$URL/browse?browser_id=$ID&url=https://hoody.com"
# 3. Extract structured data
curl -s -X POST "$URL/eval?browser_id=$ID" \
-H 'Content-Type: application/json' \
-d '["script":"document.title"]'
# > "Example Domain"
# 4. Release the slot
curl -s "$URL/shutdown?browser_id=$ID"
// Full Browser flow — start, navigate, extract, shutdown
const BASE = 'https://proj-dev-browser-1.hoody.com';
const id = 'main';
// 1. Spawn a stealth Chromium
const start = await fetch(`$[BASE]/start?browser_id=$[id]&stealth=true`);
const [ webSocketDebuggerUrl ] = await start.json();
// 2. Navigate
await fetch(`$[BASE]/browse?browser_id=$[id]&url=https://hoody.com`);
// 3. Extract structured data
const r = await fetch(`$[BASE]/eval?browser_id=$[id]`, [
method: 'POST',
headers: [ 'Content-Type': 'application/json' ],
body: JSON.stringify([ script: 'document.title' ])
]);
const title = 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://proj-dev-browser-1.hoody.com'
id = 'main'
# 1. Spawn a stealth Chromium
start = requests.get(f'[BASE]/start', params=['browser_id': id, 'stealth': 'true'])
ws = start.json()['webSocketDebuggerUrl']
# 2. Navigate
requests.get(f'[BASE]/browse', params=['browser_id': id, 'url': 'https://hoody.com'])
# 3. Extract structured data
r = requests.post(f'[BASE]/eval',
params=['browser_id': id],
json=['script': 'document.title'])
title = r.json()
# => "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 مسطح. متغيرات الطريقة على نفس المسار مُدرجة بشكل منفصل.
التفاعل
[count, plural, zero [لا نقاط نهاية] one [# نقطة نهاية] two [# نقطة نهاية] few [# نقاط نهاية] many [# نقطة نهاية] other [# نقطة نهاية]]'curl -X POST /eval -d '["script":"document.title"]' → "Example"
حالة الجلسة
[count, plural, zero [لا نقاط نهاية] one [# نقطة نهاية] two [# نقطة نهاية] few [# نقاط نهاية] many [# نقطة نهاية] other [# نقطة نهاية]]'curl -X POST /cookies -d '[[name,value,domain,...]]' → [ added: 4 ]
الاستبطان
[count, plural, zero [لا نقاط نهاية] one [# نقطة نهاية] two [# نقطة نهاية] few [# نقاط نهاية] many [# نقطة نهاية] other [# نقطة نهاية]]'curl /devtools-url?browser_id=main → [ ws, http, frontend ]
دورة الحياة
[count, plural, zero [لا نقاط نهاية] one [# نقطة نهاية] two [# نقطة نهاية] few [# نقاط نهاية] many [# نقطة نهاية] other [# نقطة نهاية]]'curl /start?browser_id=main&stealth=true → [ ws, stealth: true ]
بالإضافة إلى GET /health وGET /metrics الموروثة من المنصة على كل خدمة Kit في Hoody.
التخفي وبصمة المتصفح وCDP — بدون تكاليف الإعداد
المتصفح هو طبقة رفيعة فوق Chromium — كل ما ستثبّته وترقّعه وتراقبه هو معامل استعلام.
انتحال بصمة المتصفح
اضبط UA وإعدادات العرض والمنطقة الزمنية واللغة والموقع الجغرافي على /start — أو أشِر إلى fingerprintId.
وضع التخفي
الكشف المضاد Patchright مفعّل بشكل افتراضي لـ Chromium. ليس منيعاً ضد كل موردي الكشف.
مرور CDP
GET /devtools-url returns the WebSocket URL, DevTools HTTP API, and frontend UI. Existing Puppeteer or Playwright code keeps working — connect, don't rewrite.
الوكيل وDoH
بروكسيات SOCKS5 وSO CKS5h وHTTP وHTTPS مع المصادقة وقوائم الاستثناء. DNS-over-HTTPS عبر Cloudflare افتراضياً.
قنوات Chromium
ثبّت أي بناء Chromium — سلسلة الإصدار الكاملة، الإصدار الرئيسي، أو القناة (stable / beta / dev / canary).
مخازن حلقية للتصحيح
آخر 500 إدخال في وحدة التحكم و500 إدخال شبكة لكل نسخة، بالإضافة إلى سجل تصفح مستمر.
أضف متصفحاً حقيقياً إلى حزمتك
المتصفح هو إحدى خدمات Kit المُدرجة مع كل حاوية. بلا تثبيت برامج تشغيل، بلا Puppeteer، بلا إعداد.