فوری جواب: 2026 میں ایل ایل ایم کے لیے جدید python web scraping projects میں دو مرحلہ وار پائپ لائن ضروری ہے: ہائی کنکرنسی ہیڈ لیس رینڈرنگ (Playwright یا Crawl4AI) اور ماڈل میں بھیجنے سے پہلے DOM شور کی صفائی (SVG، اسکرپٹس اور مینو ہٹانا)۔ منظم ڈیٹا کے لیے Instructor کے ساتھ Pydantic schemas نافذ کریں، جس سے ٹوکن لاگت 75 سے 88 فیصد تک کم ہو جاتی ہے۔
1. تعارف: جدید ایل ایل ایم اور خود مختار اے آئی ایجنٹس کے دور میں ویب اسکریپنگ
خود مختار اے آئی ایجنٹس اور RAG پائپ لائنز کو تازہ اور تصدیق شدہ ویب سیاق و سباق کی اشد ضرورت ہوتی ہے۔ اگرچہ Claude 3.7 Sonnet، DeepSeek V3/R1 اور GPT-4o جیسے جدید ترین ماڈلز 20 لاکھ ٹوکنز تک کی ونڈو پیش کرتے ہیں، لیکن کچا HTML بغیر صفائی کے ماڈل میں داخل کرنا ایک انتہائی مہنگا عمل ہے۔
ماضی میں scrape website python کے لیے requests اور BeautifulSoup یا Scrapy کا استعمال ہوتا تھا۔ مگر موجودہ ویب React اور Next.js پر مبنی ڈائنامک SPAs میں تبدیل ہو چکا ہے جو Cloudflare Turnstile اور Akamai WAF سے محفوظ ہیں۔
اسکریپنگ کے بنیادی مقاصد بھی بدل چکے ہیں:
- روایتی اسکریپنگ (2015–2023): فکسڈ فیلڈز کو XPath یا CSS کے ذریعے ڈیٹابیس میں محفوظ کرنا۔
- ایجنٹ اور ایل ایل ایم اسکریپنگ (2026): اضافی کوڈ کا خاتمہ، مارک ڈاؤن ڈھانچے کا تحفظ، اور Pydantic schemas کے ذریعے درست JSON نکالنا۔
2. فریم ورکس کا موازنہ: BeautifulSoup vs Scrapy vs Playwright vs Crawl4AI
| کارکردگی کا معیار | BeautifulSoup4 + Requests | Scrapy (Twisted/AsyncIO) | Raw Playwright (Async Python) | Crawl4AI (v0.9.x+) |
|---|---|---|---|---|
| بنیادی استعمال | چھوٹے اسکرپٹس اور جامد HTML | بڑے پیمانے پر تقسیم شدہ کرالنگ | ڈائنامک SPAs اور پیچیدہ JS سرگرمیاں | اے آئی ایجنٹس اور ایل ایل ایم ایکسٹریکشن |
| جاوا اسکرپٹ ایگزیکیوشن | موجود نہیں | موجود نہیں (Scrapy-Playwright درکار) | مکمل Chromium اور WebKit انجن | ایل ایل ایم کے لیے موزوں Chromium انجن |
| تھرو پٹ | ~15-25 درخواستیں/سیکنڈ | ~150-300 درخواستیں/سیکنڈ | ~5-12 صفحات/سیکنڈ (16GB RAM) | ~25-45 صفحات/سیکنڈ (سیاق و سباق کا اعادہ) |
| میموری کا استعمال | کم ترین (~40MB) | کم (~120MB) | زیادہ (150-350MB فی سیاق) | معتدل (~80-140MB فی ٹیب) |
| مارک ڈاؤن تبدیلی | بیرونی لائبریری درکار | مخصوص پائپ لائن | دستی انضمام | اصل ایل ایل ایم آپٹمائزڈ مارک ڈاؤن |
| DOM شور کی صفائی | کوڈ کے ذریعے دستی صفائی | دستی سلیکٹرز | CDP کے ذریعے دستی جانچ | بلٹ ان PruningContentFilter |
| اینٹی بوٹ بائی پاس | انتہائی کمزور (صرف UA) | مڈل ویئر پراکسیز | شاندار (playwright-stealth) |
بلٹ ان اسٹیلتھ اور TLS شبیہ سازی |
| Pydantic سپورٹ | موجود نہیں | ItemLoaders | موجود نہیں | اصل Pydantic اسکیما انجن |
3. ایل ایل ایم اسکریپنگ کی معیشت: DOM شور کی صفائی اور ٹوکنز کی بچت
کچے HTML کا 85 سے 95 فیصد حصہ CSS کلاسز، ٹریکنگ اسکرپٹس اور فالتو لنکس پر ضائع ہوتا ہے۔
روزانہ 50,000 صفحات پر مالی بچت کا جائزہ (GPT-4o کی لاگت $2.50 فی 1M ٹوکنز)
- کچے HTML کے یومیہ ٹوکنز: 50,000 × 55,000 = 2.75 ارب ٹوکنز
- صاف مارک ڈاؤن کے یومیہ ٹوکنز: 50,000 × 4,200 = 210 ملین ٹوکنز
- یومیہ بچت: (2,750 - 210) × $2.50 = $6,350.00 / دن
- ماہانہ بچت: $190,500.00 / ماہ
4. عملی پائتھن کوڈ: Async Playwright اور Selectolax
# clean_scraper.py
import asyncio
from playwright.async_api import async_playwright
from selectolax.parser import HTMLParser
import markdownify
async def scrape_clean_markdown(url: str) -> str:
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True, args=["--no-sandbox"])
page = await browser.new_page()
await page.goto(url, wait_until="networkidle", timeout=30000)
raw_html = await page.content()
await browser.close()
parser = HTMLParser(raw_html)
for tag in ["script", "style", "svg", "noscript", "header", "footer", "nav", "aside"]:
for node in parser.css(tag):
node.decompose()
main = parser.css_first("main, article, #content") or parser.css_first("body")
return markdownify.markdownify(main.html if main else parser.html, heading_style="ATX")
5. Crawl4AI کے ساتھ تیز رفتار اسکریپنگ
# crawl4ai_pipeline.py
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.content_filter_strategy import PruningContentFilter
async def run_crawl4ai(url: str) -> str:
async with AsyncWebCrawler(config=BrowserConfig(headless=True)) as crawler:
config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
content_filter=PruningContentFilter(threshold=0.48),
wait_until="networkidle"
)
res = await crawler.arun(url=url, config=config)
return res.markdown
6. Pydantic اور Instructor کے ساتھ منظم JSON کا حصول
# pydantic_extractor.py
import os
from typing import List, Optional
from pydantic import BaseModel, Field
import instructor
from openai import OpenAI
class TechSpec(BaseModel):
name: str = Field(description="فیچر کا نام")
supported: bool = Field(description="کیا سپورٹ موجود ہے")
class ProductInfo(BaseModel):
product_name: str
price_usd: Optional[float] = None
specs: List[TechSpec]
def extract_data(clean_md: str) -> ProductInfo:
client = instructor.from_openai(OpenAI(api_key=os.environ["OPENAI_API_KEY"]))
return client.chat.completions.create(
model="gpt-4o-mini",
response_model=ProductInfo,
messages=[{"role": "user", "content": clean_md}],
temperature=0.0
)
7. WAF سیکیورٹی بائی پاس اور curl_cffi کا استعمال
# stealth_requester.py
from curl_cffi import requests
def fetch_stealth(url: str, proxy: str = None) -> str:
proxies = {"http": proxy, "https": proxy} if proxy else None
return requests.get(url, impersonate="chrome124", proxies=proxies, timeout=15).text
8. کل لاگت کا تقابلی جائزہ (100,000 صفحات کا ٹیسٹ)
| لاگت کا شعبہ | Raw Playwright (کچا HTML) | Playwright + Selectolax | Crawl4AI Async انجن | Firecrawl Cloud |
|---|---|---|---|---|
| کمپیوٹ لاگت | $48.00 | $22.00 | $16.00 | $0.00 |
| رہائشی پراکسیز | $120.00 | $32.00 | $30.00 | پیکج میں شامل |
| ایل ایل ایم لاگت | $13,750.00 | $1,050.00 | $975.00 | $825.00 |
| کل لاگت | $13,918.00 | $1,104.00 | $1,021.00 | $1,024.00 |
9. نتائج اور تکنیکی سفارشات
- مرحلہ وار حکمت عملی: جامد صفحات کے لیے
curl_cffiاور ڈائنامک SPAs کے لیے Crawl4AI استعمال کریں۔ - DOM فلٹرنگ لازمی: کچا HTML کبھی بھی ماڈل کو نہ بھیجیں؛ 80 فیصد سے زیادہ ٹوکن کمی کا ہدف رکھیں۔
- Pydantic تصدیق: ڈیٹا کی صحت کے لیے Instructor لائبریری کو ترجیح دیں۔
- غیر متزامن تقسیم: کرالنگ اور ماڈل پروسیسنگ کو الگ کیوز (Celery/ARQ) میں چلائیں۔