ازگر کے ساتھ ویب سائٹس میں لاگ ان کرنا۔

Logging Into Websites With Python



لاگ ان کی خصوصیت آج کی ویب ایپلی کیشنز میں ایک اہم فعالیت ہے۔ یہ فیچر سائٹ کے غیر استعمال کنندگان سے خاص مواد رکھنے میں مدد کرتا ہے اور پریمیم صارفین کی شناخت کے لیے بھی استعمال ہوتا ہے۔ لہذا اگر آپ کسی ویب سائٹ کو ویب سکریپ کرنے کا ارادہ رکھتے ہیں ، تو آپ لاگ ان کی خصوصیت کو دیکھ سکتے ہیں اگر مواد صرف رجسٹرڈ صارفین کے لیے دستیاب ہو۔

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







اس ٹیوٹوریل کو سمجھنے اور ویب سائٹس میں لاگ ان کرنے کے لیے سکرپٹ لکھنے کے قابل ہونے کے لیے ، آپ کو HTML کے بارے میں کچھ سمجھنے کی ضرورت ہوگی۔ شاید زبردست ویب سائٹس بنانے کے لیے کافی نہیں ، لیکن بنیادی ویب پیج کی ساخت کو سمجھنے کے لیے کافی ہے۔



یہ درخواستوں اور خوبصورت سوپ ازگر لائبریریوں کے ساتھ کیا جائے گا۔ ان ازگر لائبریریوں کو چھوڑ کر ، آپ کو ایک اچھے براؤزر کی ضرورت ہوگی جیسے گوگل کروم یا موزیلا فائر فاکس کیونکہ وہ کوڈ لکھنے سے پہلے ابتدائی تجزیے کے لیے اہم ہوں گے۔



درخواستوں اور بیوٹیفل سوپ لائبریریوں کو پائپ کمانڈ کے ساتھ ٹرمینل سے انسٹال کیا جاسکتا ہے جیسا کہ ذیل میں دیکھا گیا ہے۔





پائپ انسٹال کرنے کی درخواستیں۔
پائپ انسٹال کریں BeautifulSoup4

تنصیب کی کامیابی کی تصدیق کے لیے ، ازگر کے انٹرایکٹو شیل کو چالو کریں جو ٹائپ کرکے کیا جاتا ہے۔ ازگر ٹرمینل میں

پھر دونوں لائبریریاں درآمد کریں:



درآمددرخواستیں
سےbs4درآمدخوبصورت سوپ۔

اگر کوئی غلطیاں نہیں ہیں تو درآمد کامیاب ہے۔

عمل

اسکرپٹس والی ویب سائٹ میں لاگ ان کرنے کے لیے ایچ ٹی ایم ایل کا علم اور ویب کے کام کرنے کا اندازہ درکار ہے۔ آئیے مختصر طور پر دیکھیں کہ ویب کیسے کام کرتا ہے۔

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

جب آپ کسی ویب سائٹ کو اس کے لنک کے ذریعے کھولنے کی کوشش کرتے ہیں تو ، آپ سرور سائیڈ سے درخواست کرتے ہیں کہ آپ کو HTML فائلیں اور دیگر جامد فائلیں جیسے CSS اور جاوا اسکرپٹ لائیں۔ اس درخواست کو GET درخواست کے نام سے جانا جاتا ہے۔ تاہم جب آپ کوئی فارم بھر رہے ہوں ، میڈیا فائل یا دستاویز اپ لوڈ کر رہے ہوں ، ایک پوسٹ بنا رہے ہوں اور آئیے ایک جمع کرائیں بٹن پر کلک کریں ، آپ سرور سائیڈ کو معلومات بھیج رہے ہیں۔ اس درخواست کو POST درخواست کے نام سے جانا جاتا ہے۔

ہماری اسکرپٹ لکھتے وقت ان دو تصورات کو سمجھنا ضروری ہوگا۔

ویب سائٹ کا معائنہ۔

اس آرٹیکل کے تصورات پر عمل کرنے کے لیے ، ہم کھرچنے کے حوالے۔ ویب سائٹ

ویب سائٹس میں لاگ ان کرنے کے لیے معلومات جیسے صارف نام اور پاس ورڈ کی ضرورت ہوتی ہے۔

تاہم چونکہ یہ ویب سائٹ صرف تصور کے ثبوت کے طور پر استعمال کی جاتی ہے ، کچھ بھی جاتا ہے۔ لہذا ہم استعمال کریں گے۔ منتظم بطور صارف نام اور 12345۔ پاس ورڈ کے طور پر.

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

اب ، نوٹ کریں نام صارف نام اور پاس ورڈ بکس کے لیے ان پٹ ٹیگز کی خاصیت ، کوڈ لکھتے وقت ان کی ضرورت ہوگی۔ اس ویب سائٹ کے لیے ، نام صارف نام اور پاس ورڈ کے لیے وصف ہیں۔ صارف نام اور پاس ورڈ بالترتیب

اگلا ، ہمیں یہ جاننا ہوگا کہ کیا دوسرے پیرامیٹرز ہیں جو لاگ ان کے لیے اہم ہوں گے۔ آئیے جلدی سے اس کی وضاحت کریں۔ ویب سائٹس کی حفاظت کو بڑھانے کے لیے ، ٹوکن عام طور پر کراس سائٹ جعل سازی کے حملوں کو روکنے کے لیے بنائے جاتے ہیں۔

لہذا ، اگر ان ٹوکنز کو POST درخواست میں شامل نہیں کیا گیا تو لاگ ان ناکام ہو جائے گا۔ تو ہم ایسے پیرامیٹرز کے بارے میں کیسے جانتے ہیں؟

ہمیں نیٹ ورک ٹیب استعمال کرنے کی ضرورت ہوگی۔ گوگل کروم یا موزیلا فائر فاکس پر یہ ٹیب حاصل کرنے کے لیے ، ڈویلپر ٹولز کھولیں اور نیٹ ورک ٹیب پر کلک کریں۔

ایک بار جب آپ نیٹ ورک ٹیب میں آجائیں تو ، موجودہ صفحے کو ریفریش کرنے کی کوشش کریں اور آپ کو درخواستیں آنے کی اطلاع ملے گی۔

نیٹ ورک ٹیب کو کھولتے ہوئے ہم آگے کیا کریں گے۔ لاگ ان کی تفصیلات ڈالیں اور لاگ ان کرنے کی کوشش کریں ، پہلی درخواست جو آپ دیکھیں گے وہ پوسٹ کی درخواست ہونی چاہئے۔

پوسٹ کی درخواست پر کلک کریں اور فارم کے پیرامیٹرز دیکھیں۔ آپ دیکھیں گے کہ ویب سائٹ پر a ہے۔ csrf_token قیمت کے ساتھ پیرامیٹر یہ قدر ایک متحرک قدر ہے ، اس لیے ہمیں ایسی اقدار کو حاصل کرنے کی ضرورت ہوگی۔ حاصل کریں استعمال کرنے سے پہلے پہلے درخواست کریں۔ پوسٹ درخواست

دوسری ویب سائٹس کے لیے جن پر آپ کام کر رہے ہوں گے ، شاید آپ نے یہ نہیں دیکھا ہو گا۔ csrf_token لیکن دوسرے ٹوکن ہوسکتے ہیں جو متحرک طور پر تیار کیے جاتے ہیں۔ وقت گزرنے کے ساتھ ، آپ ان پیرامیٹرز کو جاننے میں بہتر ہوجائیں گے جو لاگ ان کی کوشش کرنے میں واقعی اہمیت رکھتے ہیں۔

کوڈ

سب سے پہلے ، ہمیں لاگ ان پیج کے صفحے کے مواد تک رسائی حاصل کرنے کے لیے درخواستیں اور خوبصورت سوپ استعمال کرنے کی ضرورت ہے۔

سےدرخواستیںدرآمداجلاس
سےbs4درآمدخوبصورت سوپ۔جیسا کہبی ایس

کے ساتھاجلاس() جیسا کہs:
سائٹ =sحاصل کریں('http://quotes.toscrape.com/login')
پرنٹ کریں(سائٹ.مواد)

اس سے پہلے کہ ہم لاگ ان کریں اور اگر آپ لاگ ان کی ورڈ تلاش کریں تو یہ لاگ ان پیج کا مواد پرنٹ کر دے گا۔ مطلوبہ الفاظ صفحہ کے مواد میں پائے جائیں گے جس سے ظاہر ہوتا ہے کہ ہم نے ابھی لاگ ان نہیں کیا ہے۔

اگلا ، ہم تلاش کریں گے csrf_token کلیدی لفظ جو پہلے نیٹ ورک ٹیب کا استعمال کرتے وقت پیرامیٹرز میں سے ایک کے طور پر پایا گیا تھا۔ اگر مطلوبہ الفاظ ایک کے ساتھ ایک میچ دکھاتا ہے۔ ان پٹ ٹیگ ، پھر جب بھی آپ خوبصورت سوپ کا استعمال کرتے ہوئے اسکرپٹ چلاتے ہیں تو قدر نکالی جاسکتی ہے۔

سےدرخواستیںدرآمداجلاس
سےbs4درآمدخوبصورت سوپ۔جیسا کہبی ایس

کے ساتھاجلاس() جیسا کہs:
سائٹ =sحاصل کریں('http://quotes.toscrape.com/login')
bs_content=بی ایس(سائٹ.مواد، 'html.parser')
ٹوکن =bs_contentمل('ان پٹ'، {'نام':'csrf_token'})['قدر']
login_data= {'صارف نام':'ایڈمن'،'پاس ورڈ':'12345'، 'csrf_token':ٹوکن}
sپوسٹ('http://quotes.toscrape.com/login'،login_data)
ہوم پیج=sحاصل کریں('http://quotes.toscrape.com')
پرنٹ کریں(ہوم پیج.مواد)

یہ صفحہ کے مواد کو لاگ ان کرنے کے بعد پرنٹ کرے گا ، اور اگر آپ لاگ آؤٹ مطلوبہ الفاظ کی تلاش کریں گے۔ کلیدی لفظ صفحہ کے مواد میں پایا جائے گا جس سے ظاہر ہوتا ہے کہ ہم کامیابی کے ساتھ لاگ ان کرنے کے قابل تھے۔

آئیے کوڈ کی ہر لائن پر ایک نظر ڈالیں۔

سےدرخواستیںدرآمداجلاس
سےbs4درآمدخوبصورت سوپ۔جیسا کہبی ایس

مندرجہ بالا کوڈ کی لکیریں سیشن آبجیکٹ کو درخواستوں کی لائبریری سے درآمد کرنے کے لیے استعمال ہوتی ہیں اور بی ایس 4 لائبریری سے بیوٹیفل سوپ آبجیکٹ کا عرف استعمال کرتے ہوئے بی ایس .

کے ساتھاجلاس() جیسا کہs:

درخواستوں کا سیشن اس وقت استعمال کیا جاتا ہے جب آپ کسی درخواست کے سیاق و سباق کو مدنظر رکھتے ہوئے ارادہ کرتے ہیں ، لہذا کوکیز اور اس درخواست کے سیشن کی تمام معلومات کو محفوظ کیا جا سکتا ہے۔

bs_content=بی ایس(سائٹ.مواد، 'html.parser')
ٹوکن =bs_contentمل('ان پٹ'، {'نام':'csrf_token'})['قدر']

یہ کوڈ یہاں بیوٹیفل سوپ لائبریری کو استعمال کرتا ہے۔ csrf_token ویب پیج سے نکالا جا سکتا ہے اور پھر ٹوکن متغیر کو تفویض کیا جا سکتا ہے۔ آپ BeautifulSoup کا استعمال کرتے ہوئے نوڈس سے ڈیٹا نکالنے کے بارے میں جان سکتے ہیں۔

login_data= {'صارف نام':'ایڈمن'،'پاس ورڈ':'12345'، 'csrf_token':ٹوکن}
sپوسٹ('http://quotes.toscrape.com/login'،login_data)

یہاں کا کوڈ لاگ ان کے لیے استعمال ہونے والے پیرامیٹرز کی لغت بناتا ہے۔ لغات کی چابیاں ہیں۔ نام ان پٹ ٹیگز کی خصوصیات اور اقدار ہیں۔ قدر ان پٹ ٹیگز کی خصوصیات

کی پوسٹ طریقہ کار پیرامیٹرز کے ساتھ پوسٹ کی درخواست بھیجنے اور ہمیں لاگ ان کرنے کے لیے استعمال کیا جاتا ہے۔

ہوم پیج=sحاصل کریں('http://quotes.toscrape.com')
پرنٹ کریں(ہوم پیج.مواد)

لاگ ان کے بعد ، اوپر کوڈ کی یہ لائنیں صرف صفحے سے معلومات نکالتی ہیں تاکہ یہ ظاہر کیا جا سکے کہ لاگ ان کامیاب رہا۔

نتیجہ

ازگر کا استعمال کرتے ہوئے ویب سائٹوں میں لاگ ان کرنے کا عمل بہت آسان ہے ، تاہم ویب سائٹس کا سیٹ اپ ایک جیسا نہیں ہے اس لیے کچھ سائٹس دوسروں کے مقابلے میں لاگ ان کرنا زیادہ مشکل ثابت ہوں گی۔ آپ کو جو بھی لاگ ان چیلنجز ہیں ان پر قابو پانے کے لیے اور بھی بہت کچھ کیا جا سکتا ہے۔

اس سب میں سب سے اہم چیز ایچ ٹی ایم ایل ، درخواستوں ، بیوٹیفل سوپ کا علم اور اپنے ویب براؤزر کے ڈویلپر ٹولز کے نیٹ ورک ٹیب سے حاصل کردہ معلومات کو سمجھنے کی صلاحیت ہے۔