منصوبے کے بارے میں

web-core پائتھون (Python) کے لیے ایک مشترکہ ویب انفراسٹرکچر پیکیج ہے، جسے wet-mcp MCP سرور اور دیگر ڈاؤن اسٹریم ایپلی کیشنز کو پاور کرنے والا بتایا گیا ہے۔ یہ ایک ٹائپڈ پبلک API کے پیچھے کئی ویب-فیسنگ صلاحیتوں کو یکجا کرتا ہے، اور README میں ذکر ہے کہ سائٹ کے مخصوص سلیکٹرز جان بوجھ کر کنزیومر ایپلی کیشنز کے لیے چھوڑ دیے گئے ہیں — یہ پیکیج صرف جنرل انفراسٹرکچر فراہم کرتا ہے، جبکہ فی-ڈومین کوکیز اور سلیکٹرز انوائرمنٹ ویری ایبلز کے ذریعے فراہم کیے جاتے ہیں۔ README میں درج صلاحیتیں: - SearXNG سرچ: ایک کراس-پروسیس سنگلٹون رنر (فائل-لاک پر مبنی، جو تمام پائتھون پروسیسز میں ایک ہی انسٹنس کو یقینی بناتا ہے) اور ایک کلائنٹ جو ری ٹرائیز، رزلٹ ڈی ڈپلیکیشن اور ڈومین فلٹرنگ کرتا ہے۔ - ملٹی اسٹریٹجی اسکریپنگ: ایک LangGraph اسٹیٹ-مشین ایجنٹ جو مختلف حکمت عملیوں (strategies) کے درمیان اسکیلیٹ کرتا ہے۔ فراہم کردہ اسٹریٹجی ماڈیولز میں API-direct فیچنگ، بنیادی HTTP، curl-cffi کے ذریعے TLS فنگر پرنٹ سپوفنگ، Crawl4AI کے ذریعے ہیڈ لیس رینڈرنگ، Patchright اسٹیلتھ-براؤزر رینڈرنگ، RenderClient کے ذریعے ریموٹ رینڈرنگ، اور CapSolver پر مبنی CAPTCHA اسٹریٹجی شامل ہیں۔ اسٹریٹجیز کو کیش-سفارش کردہ ترتیب میں آزمایا جاتا ہے، جوابات کی تصدیق کی جاتی ہے، اور ناکامیوں پر خودکار طور پر اسکیلیشن ہوتی ہے — بشمول ان JavaScript شیلز کے لیے جو مکمل رینڈر نہیں ہوئے تھے۔ ایک StrategyCache فی-ڈومین کارکردگی کو ٹریک کرتا ہے۔ - SSRF-safe HTTP کلائنٹ: ایک DNS-pinned httpx کلائنٹ، URL نارملائزیشن، ٹریکنگ-پیرامیٹر اسٹریپنگ اور ڈومین ویلیڈیشن ہیلپرز۔ تمام آؤٹ باؤنڈ HTTP کا مقصد safe_httpx_client کے ذریعے جانا ہے تاکہ DNS ری بائنڈنگ سے بچا جا سکے۔ - براؤزرز اور ریموٹ رینڈرنگ: ایک BrowserProvider پروٹوکول پلس ایک Patchright (undetected Playwright) پروڈر، سیلف-ہوسٹڈ /content اینڈ پوائنٹس کے لیے ایک BrowserlessClient، اور ایک Cloudflare Browser Rendering کلائنٹ، جس کا مقصد سلم کنٹینرز ہیں جو JavaScript رینڈرنگ کو آف لوڈ کرتے ہیں۔ - robots.txt تعمیل: فیچنگ سے پہلے فی-ڈومین کیشڈ چیک۔ - LLM سلیکٹر انفرنس (اختیاری): جب بلٹ-ان سلیکٹرز ناکام ہو جاتے ہیں، تو موجود API کی (Google Gemini, OpenAI, Anthropic, xAI) کی بنیاد پر ایک پرووائیڈر خودکار طور پر ڈیٹیکٹ کیا جا سکتا ہے؛ اگر کوئی کی سیٹ نہیں ہے، تو انفرنس خاموشی سے چھوڑ دیا جاتا ہے۔ ایک کسٹم llm_caller بھی انجیکٹ کیا جا سکتا ہے۔ Gemini کو پروجیکٹ/لوکیشن ویری ایبلز کے ذریعے Vertex AI کے ذریعے روٹ کیا جا سکتا ہے۔ - بیرونی API اڈاپٹرز: Google Drive فولڈر/فائل فیچنگ اور MangaDex (مانگا، چیپٹرز، تصاویر) کے لیے ٹائپڈ، SSRF-safe کلائنٹس۔ انسٹالیشن PyPI سے n24q02m-web-core (uv add) کے طور پر ہے، جس میں v2.x اسٹیبل لائن ہے۔ کنفیگریشن مکمل طور پر انوائرمنٹ ویری ایبلز پر مبنی ہے اور ہر ویری ایبل اختیاری ہے — کسی ایک کو چھوڑنے سے وہ فیچر غیر فعال ہو جاتا ہے جسے وہ کنٹرول کرتا ہے، اور پیکیج کو امپورٹ یا استعمال کرنے کے لیے کسی ویری ایبل کی ضرورت نہیں ہے۔ دستاویزی ویری ایبلز میں SearXNG URL اور رن یوزر، اسکریپنگ کے لیے فی-ڈومین کوکیز (JSON)، اور سلیکٹر انفرنس کے لیے LLM پرووائیڈر کیز اور ماڈل اوور رائیڈ شامل ہیں۔ ریموٹ رینڈر کریڈنشلز کنسٹرکٹر آرگیومنٹ کے طور پر پاس کیے جاتے ہیں۔ آرکیٹیکچر src/web_core کے تحت منظم ہے جس میں لیئرڈ ماڈیولز ہیں: http (SSRF-safe primitives, URL utilities), search (client, models, runner), scraper (agent, base strategy, cache, robots, selector inference, state, utils, and the strategies subpackage), browsers (protocol, patchright, browserless, cf_rendering) اور adapters (google_drive, mangadex)۔ پیکیج PEP 561 ٹائپنگ کے لیے py.typed مارکر فراہم کرتا ہے۔ ڈیزائن کے اہم فیصلوں میں SSRF تحفظ کے لیے DNS پننگ، خودکار اسٹریٹجی اسکیلیشن، کراس-پروسیس SearXNG سنگلٹون، اور پروٹوکول-بیسڈ اسٹرکچرل ٹائپنگ کا استعمال شامل ہے تاکہ براؤزر اور رینڈر امپلیمنٹیشنز کو بیس کلاس سے انٹھرٹ کرنے کی ضرورت نہ ہو۔ ڈیولپمنٹ uv کے ساتھ Python 3.13 کو ٹارگٹ کرتی ہے، جس میں اختیاری mise ٹاسک شارٹ کٹس، pre-commit ہکس، لنٹ/فارمیٹ کے لیے ruff، ٹائپ چیکنگ کے لیے ty اور کوریج کے ساتھ pytest شامل ہیں — ٹیسٹ سویٹ 95% کوریج تھریش ہول کو نافذ کرتا ہے اور asyncio_mode auto استعمال کرتا ہے۔ ٹیسٹ فائلیں سورس ماڈیول اسٹرکچر کی عکاسی کرتی ہیں۔ پروجیکٹ Apache-2.0 کے تحت لائسنس شدہ ہے۔