ویب اسکریپنگ اور ایل ایل ایم

پائتھن ویب اسکریپنگ اور ایل ایل ایم ڈیٹا نکالنے کی گائیڈ (2026)

فوری جواب: 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. نتائج اور تکنیکی سفارشات

  1. مرحلہ وار حکمت عملی: جامد صفحات کے لیے curl_cffi اور ڈائنامک SPAs کے لیے Crawl4AI استعمال کریں۔
  2. DOM فلٹرنگ لازمی: کچا HTML کبھی بھی ماڈل کو نہ بھیجیں؛ 80 فیصد سے زیادہ ٹوکن کمی کا ہدف رکھیں۔
  3. Pydantic تصدیق: ڈیٹا کی صحت کے لیے Instructor لائبریری کو ترجیح دیں۔
  4. غیر متزامن تقسیم: کرالنگ اور ماڈل پروسیسنگ کو الگ کیوز (Celery/ARQ) میں چلائیں۔
→ تمام مضامین
0 / 4