Skip to content

Web Scraper Library — اردو/کھرچنی

The اردو/کھرچنی library wraps BeautifulSoup4 for parsing HTML — either from a string or fetched live from a URL. It provides Urdu-named properties and methods for navigating and extracting page content.

اردو: اردو/کھرچنی لائبریری BeautifulSoup4 کا ریپر ہے جو HTML پارس کرتا ہے — چاہے متن (string) سے ہو یا براہ راست URL سے۔ یہ ویب صفحات سے ڈیٹا نکالنے کے لیے اردو نامی خاصیات اور طریقے فراہم کرتا ہے۔

Import:

درآمد { صفحہ_بناؤ, کھرچو, صفحہ } سے "اردو/کھرچنی"

Table of Contents

  1. Creating a Document
  2. صفحہ — Page object
  3. _عنصر — Element object
  4. Examples

Creating a Document — دستاویز بنانا

اردو: HTML دستاویز بنانے کے دو طریقے ہیں: صفحہ_بناؤ() سے HTML متن پارس کریں، یا کھرچو() سے URL سے براہ راست صفحہ حاصل کریں اور پارس کریں۔

صفحہ_بناؤ — Parse HTML string — HTML متن پارس کریں

متغیر صفحہ = صفحہ_بناؤ(html_متن, تجزیہ_کار="html.parser")
Parser string Backend Notes
"html.parser" Python stdlib No extra dependencies, always available
"lxml" lxml Fastest; pip install lxml required
"html5lib" html5lib Most lenient, handles broken HTML; pip install html5lib required

کھرچو — Fetch URL and parse (async) — URL سے حاصل کریں اور پارس کریں

متغیر صفحہ = انتظار کھرچو(url, سرخط={}, تجزیہ_کار="html.parser")

Internally performs an HTTP GET and parses the response body. Returns a صفحہ object.

اردو: اندرونی طور پر HTTP GET کرتا ہے اور جواب کی باڈی پارس کرتا ہے۔ ایک صفحہ آبجیکٹ واپس کرتا ہے۔ اضافی سرخیاں دے کر بعض ویب سائٹس کو براؤزر کی درخواست جیسا لگائیں۔


صفحہ — Page object — صفحہ آبجیکٹ

صفحہ is a specialised element representing the whole document.

اردو: صفحہ پوری دستاویز کو نمائندہ کرنے والا خصوصی عنصر ہے۔ اس کی .عنوان خاصیت صفحے کا <title> ٹیگ متن دیتی ہے اور یہ _عنصر کی تمام خاصیات اور طریقے وراثت میں لیتا ہے۔

Property Type Description
.عنوان string Text content of the <title> tag

The صفحہ object inherits all _عنصر properties and methods listed below.


_عنصر — Element object — عنصر آبجیکٹ

اردو: _عنصر ایک HTML عنصر کو نمائندہ کرتا ہے۔ خاصیات سے ٹیگ، شناخت، متن، HTML اور والدین/بچے تک رسائی ملتی ہے۔ طریقوں سے عناصر تلاش کریں — ٹیگ نام، خصوصیات یا CSS سلیکٹر سے۔

Properties — خاصیات

Property Type Description
.ٹیگ string HTML tag name, e.g. "div", "a"
.شناخت string | null Value of the id attribute
.متن string All text inside the element, including nested tags
.صاف_متن string Text stripped of leading/trailing whitespace
.اندرونی_html string Inner HTML — the element's contents as a string
.بیرونی_html string Outer HTML — the element itself plus its contents
.خوبصورت string Prettified (indented) HTML string
.خصوصیات object Dict of all HTML attributes
.والد _عنصر | null Parent element
.بچے list Direct child elements (tags only, no text nodes)
.اگلا _عنصر | null Next sibling element
.پچھلا _عنصر | null Previous sibling element
elem["href"] string | null Get the value of any attribute by name

Methods — طریقے

اردو: چار تلاش طریقے: .تلاش() پہلا ملنے والا عنصر دیتا ہے، .سب_تلاش() سب ملنے والے دیتا ہے، .چنو() CSS سلیکٹر سے سب دیتا ہے اور .ایک_چنو() CSS سلیکٹر سے پہلا دیتا ہے۔

Method Returns Description
.تلاش(ٹیگ, خصوصیات={}) _عنصر | null First matching child element
.سب_تلاش(ٹیگ, خصوصیات={}, حد=0) list All matching elements (0 = no limit)
.چنو(css_selector) list All elements matching a CSS selector
.ایک_چنو(css_selector) _عنصر | null First element matching a CSS selector

Attribute shorthand:

متغیر ربط = عنصر["href"]    // None if not present
متغیر src  = عنصر["src"]
متغیر cls  = عنصر["class"]

Examples — مثالیں

Example 1 — Parse an HTML string — HTML متن پارس کرنا

اردو: صفحہ_بناؤ() سے HTML متن پارس کریں، پھر .تلاش() سے عناصر نکالیں۔ .صاف_متن سے صاف متن اور ["href"] سے خصوصیات پڑھیں۔

درآمد { صفحہ_بناؤ } سے "اردو/کھرچنی"

متغیر html = """
<html>
  <head><title>اردو ویب سائٹ</title></head>
  <body>
    <h1 id="سرخی">خوش آمدید!</h1>
    <p class="تعارف">یہ اردو پروگرامنگ زبان ہے۔</p>
    <p>مزید معلومات کے لیے <a href="https://example.com">یہاں</a> کلک کریں۔</p>
  </body>
</html>
"""

متغیر صف = صفحہ_بناؤ(html)

لکھو("عنوان:", صف.عنوان)

متغیر سرخی = صف.تلاش("h1")
لکھو("سرخی:", سرخی.صاف_متن)
لکھو("سرخی ID:", سرخی.شناخت)

متغیر پیرا = صف.تلاش("p", { "class": "تعارف" })
لکھو("تعارف:", پیرا.صاف_متن)

متغیر ربط = صف.تلاش("a")
لکھو("لنک متن:", ربط.صاف_متن)
لکھو("لنک URL:", ربط["href"])

Output:

عنوان: اردو ویب سائٹ
سرخی: خوش آمدید!
سرخی ID: سرخی
تعارف: یہ اردو پروگرامنگ زبان ہے۔
لنک متن: یہاں
لنک URL: https://example.com

اردو: کھرچو() سے لائیو URL کھرچیں، صفحے کا عنوان اور تمام <a> ٹیگز نکالیں۔ .سب_تلاش("a") تمام روابط فہرست دیتا ہے۔

درآمد { کھرچو } سے "اردو/کھرچنی"

غیر_متزامن فنکشن روابط_نکالیں(url) {
    لکھو("صفحہ کھرچ رہے ہیں:", url)
    متغیر صف = انتظار کھرچو(url)

    لکھو("عنوان:", صف.عنوان)
    لکھو("-" * 50)

    متغیر تمام_روابط = صف.سب_تلاش("a")
    لکھو(`کل روابط: ${تمام_روابط.length}`)
    لکھو()

    کے_لیے (متغیر ربط کا تمام_روابط) {
        متغیر href = ربط["href"]
        متغیر متن_ = ربط.صاف_متن

        اگر (href اور متن_) {
            لکھو(`  ${متن_}`)
            لکھو(`  → ${href}`)
            لکھو()
        }
    }
}

انتظار روابط_نکالیں("https://books.toscrape.com")

Example 3 — Extract table data — جدول ڈیٹا نکالنا

اردو: HTML جدول سے ڈیٹا نکالنے کے لیے پہلے <th> ٹیگز سے کالم کے عنوانات، پھر CSS سلیکٹر "tbody tr" سے قطاریں اور <td> سے خانے نکالیں۔

درآمد { صفحہ_بناؤ } سے "اردو/کھرچنی"

متغیر html = """
<table id="نتائج">
  <thead>
    <tr><th>نام</th><th>عمر</th><th>شہر</th></tr>
  </thead>
  <tbody>
    <tr><td>احمد</td><td>25</td><td>کراچی</td></tr>
    <tr><td>فاطمہ</td><td>30</td><td>لاہور</td></tr>
    <tr><td>علی</td><td>22</td><td>اسلام آباد</td></tr>
  </tbody>
</table>
"""

متغیر صف = صفحہ_بناؤ(html)
متغیر جدول = صف.تلاش("table", { id: "نتائج" })

// ہیڈرز نکالیں
متغیر ہیڈرز = جدول.سب_تلاش("th")
لکھو("کالمز:", ہیڈرز.map(h => h.صاف_متن))

// ڈیٹا قطاریں
متغیر قطاریں = جدول.چنو("tbody tr")
لکھو(`\n${قطاریں.length} قطاریں ملیں:`)

کے_لیے (متغیر قطار کا قطاریں) {
    متغیر خانے = قطار.سب_تلاش("td")
    متغیر قدریں = خانے.map(td => td.صاف_متن)
    لکھو("  ", قدریں.join(" | "))
}

Output:

کالمز: ["نام", "عمر", "شہر"]

3 قطاریں ملیں:
   احمد | 25 | کراچی
   فاطمہ | 30 | لاہور
   علی | 22 | اسلام آباد

Example 4 — CSS selector usage — CSS سلیکٹر استعمال

اردو: .چنو(css) سے CSS سلیکٹرز استعمال کریں جیسے .مضمون .عنوان (کلاس کے اندر کلاس) یا a.مزید (مخصوص کلاس کے روابط)۔ .ایک_چنو() صرف پہلا عنصر دیتا ہے۔

درآمد { صفحہ_بناؤ } سے "اردو/کھرچنی"

متغیر html = """
<div class="مضمون">
  <h2 class="عنوان">پہلا مضمون</h2>
  <p class="خلاصہ">یہ پہلے مضمون کا خلاصہ ہے۔</p>
  <a href="/مضامین/1" class="مزید">مزید پڑھیں</a>
</div>
<div class="مضمون">
  <h2 class="عنوان">دوسرا مضمون</h2>
  <p class="خلاصہ">دوسرے مضمون کا خلاصہ یہاں ہے۔</p>
  <a href="/مضامین/2" class="مزید">مزید پڑھیں</a>
</div>
"""

متغیر صف = صفحہ_بناؤ(html)

// تمام مضامین کے عنوانات
متغیر عنوانات = صف.چنو(".مضمون .عنوان")
کے_لیے (متغیر عنوان کا عنوانات) {
    لکھو("عنوان:", عنوان.صاف_متن)
}

// تمام "مزید پڑھیں" روابط
متغیر روابط = صف.چنو("a.مزید")
کے_لیے (متغیر ربط کا روابط) {
    لکھو("URL:", ربط["href"])
}

// پہلا مضمون کا خلاصہ
متغیر پہلا_خلاصہ = صف.ایک_چنو(".مضمون .خلاصہ")
لکھو("پہلا خلاصہ:", پہلا_خلاصہ.صاف_متن)

Example 5 — Navigate parent, child, and siblings — والد، بچے اور ہم پہلو

اردو: عنصر کے درخت میں چلنے کے لیے: .والد سے اوپر جائیں، .بچے سے نیچے، .اگلا اور .پچھلا سے ہم پہلو (siblings) تک۔ یہ پیچیدہ HTML ڈھانچوں میں نیویگیٹ کرنے کا طریقہ ہے۔

درآمد { صفحہ_بناؤ } سے "اردو/کھرچنی"

متغیر html = """
<ul id="فہرست">
  <li>پہلا</li>
  <li class="منتخب">دوسرا</li>
  <li>تیسرا</li>
  <li>چوتھا</li>
</ul>
"""

متغیر صف = صفحہ_بناؤ(html)

// منتخب عنصر تلاش کریں
متغیر منتخب = صف.تلاش("li", { "class": "منتخب" })
لکھو("منتخب:", منتخب.صاف_متن)

// والد
متغیر والدین = منتخب.والد
لکھو("والد ٹیگ:", والدین.ٹیگ)
لکھو("والد ID:", والدین.شناخت)

// بہن بھائی
متغیر اگلا_عنصر   = منتخب.اگلا
متغیر پچھلا_عنصر = منتخب.پچھلا
لکھو("اگلا:", اگلا_عنصر.صاف_متن)
لکھو("پچھلا:", پچھلا_عنصر.صاف_متن)

// تمام بچے
متغیر تمام_بچے = والدین.بچے
لکھو("بچوں کی تعداد:", تمام_بچے.length)
کے_لیے (متغیر بچہ کا تمام_بچے) {
    لکھو("  -", بچہ.صاف_متن)
}

Example 6 — Scrape a real website (book listings) — حقیقی ویب سائٹ کھرچنا

اردو: یہ مثال books.toscrape.com سے کتابوں کا ڈیٹا نکالتی ہے۔ CSS سلیکٹر "article.product_pod" سے تمام کتاب کارڈز ملتے ہیں، پھر ہر کارڈ سے عنوان، قیمت اور ستارہ درجہ بندی نکالی جاتی ہے۔

درآمد { کھرچو } سے "اردو/کھرچنی"

// ═══════════════════════════════════════════════════
// کتابوں کا ڈیٹا نکالنا — books.toscrape.com
// ═══════════════════════════════════════════════════

غیر_متزامن فنکشن کتابیں_نکالیں() {
    متغیر صف = انتظار کھرچو("https://books.toscrape.com")

    لکھو("عنوان:", صف.عنوان)
    لکھو("=" * 60)

    متغیر کتاب_کارڈز = صف.چنو("article.product_pod")
    لکھو(`${کتاب_کارڈز.length} کتابیں ملیں:`)
    لکھو()

    متغیر کتابیں = []

    کے_لیے (متغیر کارڈ کا کتاب_کارڈز) {
        // عنوان
        متغیر عنوان_عنصر = کارڈ.ایک_چنو("h3 a")
        متغیر عنوان = عنوان_عنصر ? عنوان_عنصر["title"] : "نامعلوم"

        // قیمت
        متغیر قیمت_عنصر = کارڈ.ایک_چنو(".price_color")
        متغیر قیمت = قیمت_عنصر ? قیمت_عنصر.صاف_متن : "نامعلوم"

        // درجہ بندی (star rating class)
        متغیر ستارہ_عنصر = کارڈ.ایک_چنو(".star-rating")
        متغیر ستارے = ستارہ_عنصر ? ستارہ_عنصر["class"] : ""

        کتابیں.شامل({ عنوان, قیمت, ستارے })
        لکھو(`  📖 ${عنوان}`)
        لکھو(`     قیمت: ${قیمت}  |  ${ستارے}`)
        لکھو()
    }

    واپس کتابیں
}

متغیر نتائج = انتظار کتابیں_نکالیں()
لکھو(`مجموعی کتابیں: ${نتائج.length}`)

Example 7 — Extract structured data and save to CSV — منظم ڈیٹا نکالنا اور CSV محفوظ کرنا

اردو: Hacker News سے خبریں نکالیں اور CSV فائل میں محفوظ کریں۔ .athing CSS سلیکٹر آئٹمز دیتا ہے، پھر ہر آئٹم سے عنوان اور URL نکال کر CSV مواد بنائیں اور فائل_لکھو سے فائل میں لکھیں۔

درآمد { کھرچو } سے "اردو/کھرچنی"
درآمد { فائل_لکھو } سے "اردو/فائلیں"

غیر_متزامن فنکشن خبریں_csv_میں_محفوظ_کریں() {
    متغیر صف = انتظار کھرچو("https://news.ycombinator.com")

    متغیر خبریں = []

    متغیر آئٹمز = صف.چنو(".athing")
    کے_لیے (متغیر آئٹم کا آئٹمز) {
        متغیر عنوان_عنصر = آئٹم.ایک_چنو(".titleline a")
        اگر (عنوان_عنصر) {
            خبریں.شامل({
                عنوان: عنوان_عنصر.صاف_متن,
                url:   عنوان_عنصر["href"]
            })
        }
    }

    // CSV میں محفوظ
    متغیر csv_مواد = "عنوان,url\n"
    کے_لیے (متغیر خبر کا خبریں) {
        متغیر صاف_عنوان = خبر.عنوان.replace(/,/g, "")
        csv_مواد += `${صاف_عنوان},${خبر.url}\n`
    }

    فائل_لکھو("hacker_news.csv", csv_مواد)
    لکھو(`${خبریں.length} خبریں hacker_news.csv میں محفوظ ہو گئیں`)
}

انتظار خبریں_csv_میں_محفوظ_کریں()

Example 8 — Attributes deep dive — خصوصیات کا گہرا جائزہ

اردو: HTML عناصر کی خصوصیات عنصر["خصوصیت_نام"] سے پڑھیں۔ .خصوصیات تمام خصوصیات کی ڈکشنری دیتا ہے۔ .شناخت سے id خصوصیت آسانی سے ملتی ہے۔

درآمد { صفحہ_بناؤ } سے "اردو/کھرچنی"

متغیر html = """
<img id="بینر" src="/images/banner.jpg" alt="بینر تصویر" width="800" height="200">
<a href="https://example.com" data-category="ٹیکنالوجی" target="_blank">مزید</a>
"""

متغیر صف = صفحہ_بناؤ(html)

// تصویر کی خصوصیات
متغیر تصویر = صف.تلاش("img")
لکھو("src:",    تصویر["src"])
لکھو("alt:",    تصویر["alt"])
لکھو("چوڑائی:", تصویر["width"])
لکھو("ID:",     تصویر.شناخت)
لکھو("تمام خصوصیات:", تصویر.خصوصیات)

// ربط کی خصوصیات
متغیر ربط = صف.تلاش("a")
لکھو("\nhref:",    ربط["href"])
لکھو("target:",   ربط["target"])
لکھو("category:", ربط["data-category"])

Previous: HTTP → | Next: File Utilities →