اعلیٰ درجے کی ویب سائٹ انٹرایکشن اور APIs

Apr 14, 2025

سیکشن 4 میں خوش آمدید! ہم نے جامد اور جاوا اسکرپٹ سے رینڈر شدہ مواد کو اسکریپ کرنا، اور کثیر صفحاتی سائٹس میں نیویگیٹ کرنا کوور کیا ہے۔ اب، ہم زیادہ پیچیدہ منظرنامات میں غوطہ لگاتے ہیں جس میں براہ راست API تعامل، فارم جمع کرنا، تصدیق، اور GraphQL جیسے خصوصی APIs شامل ہیں۔ یہ تکنیکیں جدید ویب ایپلیکیشنز سے نمٹنے کے لیے اہم ہیں۔

1. API پر مبنی ویب سائٹس (باب 7)

بہت سی جدید ویب سائٹس اپنا تمام ڈیٹا ابتدائی HTML کے ساتھ لوڈ نہیں کرتیں۔ اس کے بجائے، وہ صفحہ لوڈ ہونے کے بعد بیک اینڈ APIs سے ڈیٹا حاصل کرنے کے لیے جاوا اسکرپٹ استعمال کرتی ہیں (اکثر fetch یا XMLHttpRequest استعمال کرتے ہوئے)۔ ان سائٹس کو موثر طریقے سے اسکریپ کرنے کا مطلب اکثر UI کو نظرانداز کرنا اور ان APIs کے ساتھ براہ راست تعامل کرنا ہے۔

اہم تصورات:

  • API درخواستوں کی شناخت: اپنے برائوزر کے ڈویلپر ٹولز (نیٹ ورک ٹیب) کا استعمال کرتے ہوئے درخواستوں (اکثر XHR/Fetch) کو تلاش کریں جو ڈیٹا واپس کرتی ہیں، عام طور پر JSON فارمیٹ میں۔
  • APIs کو براہ راست اسکریپ کرنا: ایک بار جب آپ کو API endpoint مل جائے، آپ اکثر axios جیسی لائبریریز یا Node.js میں بلٹ ان fetch استعمال کرتے ہوئے اس کے ساتھ براہ راست درخواستیں کر سکتے ہیں۔ یہ عام طور پر برائوزر آٹومیشن سے تیز اور زیادہ قابل اعتماد ہے۔
  • صفحہ بندی اور پیرامیٹرز کو سنبھالنا: APIs اکثر صفحہ بندی (page، limit)، فلٹرنگ، یا سارٹنگ کے لیے کیوری پیرامیٹرز استعمال کرتی ہیں۔ آپ کو اپنی اسکریپنگ سکرپٹ میں ان کو سمجھنا اور دہرانا ہوگا۔

چیلنج (باب 7): آپ ایک ای کامرس سائٹ اسکریپ کریں گے جہاں پروڈکٹ لسٹنگز RESTful API سے متحرک طور پر لوڈ ہوتی ہیں۔ آپ کا کام اس API کے ساتھ تعامل کرتے ہوئے، صفحہ بندی کو درست طریقے سے سنبھالتے ہوئے تمام پروڈکٹس حاصل کرنا ہے۔

_solved/chapter7/ ڈائرکٹری میں براہ راست API اسکریپنگ کا مظاہرہ کرنے والا ریفرنس حل تلاش کریں۔

2. فارمز اور تصدیق (باب 8)

اکثر، قیمتی ڈیٹا لاگ ان اسکرین کے پیچھے یا پیچیدہ فارمز جمع کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، باب 8 میں ٹریول بکنگ پلیٹ فارم بنیادی فعالیت تک رسائی کے لیے تصدیق کا مطالبہ کرتا ہے۔ منزلوں کی تلاش (آٹوکمپلیٹ استعمال کرتے ہوئے)، سفری تاریخوں کا انتخاب (کیلنڈر وجیٹ کے ساتھ تعامل)، فلٹرز لاگو کرنے، اور نتائج دیکھنے (صرف لاگ ان صارفین کے لیے دستیاب پریمیم لسٹنگز سمیت) کے لیے، آپ کو پہلے لاگ ان عمل کو خودکار بنانا ہوگا۔ اس میں فارمز کو سنبھالنا، سیشن کوکیز کا انتظام (ممکنہ ٹائم آؤٹس سمیت جن کے لیے دوبارہ تصدیق اور CSRF تحفظ کی ضرورت ہوتی ہے)، اور بالآخر برائوزر کو کنٹرول کرکے حقیقی صارف کی طرح اعمال کرنا شامل ہے۔

اہم تصورات:

  • فارم جمع کرانے کا خودکاری: Playwright یا Puppeteer جیسے ٹولز استعمال کرتے ہوئے ان پٹ فیلڈز بھرنا، آپشنز کا انتخاب، اور فارمز جمع کرنے کے لیے بٹنوں پر کلک کرنا (جیسے لاگ ان فارمز، سرچ بار، فلٹر کنٹرولز)۔
  • تصدیق کا انتظام:
    • کوکی پر مبنی: ایک بار لاگ ان کریں، اور برائوزر کنٹکسٹ (Playwright/Puppeteer کے ذریعے منظور شدہ) اکثر بعد کی درخواستوں کے لیے سیشن کوکیز کو خودکار طور پر سنبھالتا ہے۔
    • ٹوکن پر مبنی (جیسے JWT): لاگ ان کریں، ٹوکن نکالیں (اکثر local storage یا API response سے)، اور بعد کی API درخواستوں کے لیے اسے ہیڈرز میں شامل کریں (جیسے Authorization: Bearer <token>
  • سیشنز کو سنبھالنا: اپنے اسکریپر میں مختلف صفحات یا اعمال کے دوران لاگ ان حالت برقرار رکھیں۔
  • محفوظ مواد تک رسائی: تصدیق کے بعد، آپ ان صفحات یا ڈیٹا کو نیویگیٹ اور اسکریپ کر سکتے ہیں جو صرف لاگ ان صارفین کے لیے دستیاب ہیں۔

چیلنج (باب 8): اس باب میں کثیر مرحلہ عمل شامل ہے: سائٹ میں لاگ ان کرنا، سرچ پیج پر جانا، فلٹرز کے ساتھ پیچیدہ کثیر حصہ فارم بھرنا، نتائج نکالنا (صرف لاگ ان کے وقت نظر آنے والے پریمیم مواد سمیت)، اور یہاں تک کہ صارف ڈیش بورڈ میں سرچ محفوظ کرنا۔

3. GraphQL APIs کے ساتھ کام (باب 9)

GraphQL REST APIs کا ایک بڑھتا ہوا مقبول متبادل ہے۔ یہ کلائنٹس کو مخصوص کیوری زبان استعمال کرتے ہوئے بالکل وہی ڈیٹا طلب کرنے کی اجازت دیتا ہے جس کی انہیں ضرورت ہے۔

اہم تصورات:

  • GraphQL Endpoint: عام طور پر، ایک واحد endpoint ہوتا ہے (جیسے /graphql یا /api/graphql
  • کیوری زبان: آپ کو GraphQL کیوریز بنانی ہوں گی تاکہ آپ جو فیلڈز اور رشتے حاصل کرنا چاہتے ہیں انہیں بیان کر سکیں۔ Insomnia یا Postman جیسے ٹولز GraphQL schemas کی تلاش میں مدد کر سکتے ہیں۔
  • Mutations: ڈیٹا تبدیل کرنے والے اعمال کے لیے استعمال ہوتے ہیں (جیسے لاگ ان یا ڈیٹا جمع کرنا)، REST میں POST/PUT/DELETE کی طرح۔
  • تصدیق: اکثر Authorization ہیڈر بھیجنا شامل ہوتا ہے، REST APIs کی طرح، عام طور پر لاگ ان mutation کے بعد حاصل ہوتا ہے۔

چیلنج (باب 9): آپ GraphQL API کے ذریعے محفوظ کردہ سائٹ کے ساتھ تعامل کریں گے۔ کام یہ ہے کہ لاگ ان mutation کے ذریعے تصدیق کریں اور پھر GraphQL queries استعمال کرتے ہوئے چیلنجز اور صارف پروفائلز کے بارے میں مخصوص منظم ڈیٹا حاصل کریں۔

ان اعلیٰ درجے کی تکنیکوں میں مہارت حاصل کرنا آپ کی ویب اسکریپنگ صلاحیات کو نمایاں طور پر بڑھا دے گی، آپ کو زیادہ مؤثر طریقے سے اسکریپ کر سکنے والی ویب سائٹس اور ڈیٹا کی رینج میں اضافہ کرے گی۔ ہمیشہ ذمہ داری سے اسکریپ کرنا اور ویب سائٹس کی خدمات کی شرائط کا احترام کرنا یاد رکھیں۔

خوش اسکریپنگ!