পাইথনের সাহায্যে ওয়েবসাইটে লগিং করা

Logging Into Websites With Python



লগইন বৈশিষ্ট্যটি আজকের ওয়েব অ্যাপ্লিকেশনগুলির একটি গুরুত্বপূর্ণ কার্যকারিতা। এই বৈশিষ্ট্যটি সাইটের অ-ব্যবহারকারীদের থেকে বিশেষ বিষয়বস্তু রাখতে সাহায্য করে এবং প্রিমিয়াম ব্যবহারকারীদের চিহ্নিত করতেও ব্যবহৃত হয়। অতএব আপনি যদি কোনও ওয়েবসাইটকে ওয়েব স্ক্র্যাপ করার ইচ্ছা করেন, তবে লগইন বৈশিষ্ট্যটি যদি আপনি নিবন্ধিত ব্যবহারকারীদের জন্য উপলব্ধ হন তবে আপনি আসতে পারেন।

ওয়েব স্ক্র্যাপিং টিউটোরিয়ালগুলি অতীতে আচ্ছাদিত হয়েছে, অতএব এই টিউটোরিয়ালটি ব্রাউজার ব্যবহার করে ম্যানুয়ালি করার পরিবর্তে কোড দিয়ে লগ ইন করে ওয়েবসাইটগুলিতে অ্যাক্সেস পাওয়ার দিকটি জুড়েছে।







এই টিউটোরিয়ালটি বুঝতে এবং ওয়েবসাইটে লগ ইন করার জন্য স্ক্রিপ্ট লিখতে সক্ষম হতে, আপনার HTML এর কিছু বোঝার প্রয়োজন হবে। অসাধারণ ওয়েবসাইট তৈরির জন্য হয়তো যথেষ্ট নয়, কিন্তু একটি মৌলিক ওয়েব পেজের গঠন বোঝার জন্য যথেষ্ট।



এটি রিকুয়েস্টস এবং বিউটিফুলসুপ পাইথন লাইব্রেরি দিয়ে করা হবে। পাইথন লাইব্রেরির পাশাপাশি, আপনার একটি ভাল ব্রাউজার যেমন গুগল ক্রোম বা মজিলা ফায়ারফক্সের প্রয়োজন হবে কারণ সেগুলি কোড লেখার আগে প্রাথমিক বিশ্লেষণের জন্য গুরুত্বপূর্ণ হবে।



রিকুয়েস্টস এবং বিউটিফুলসুপ লাইব্রেরিগুলি টার্মিনাল থেকে পিপ কমান্ড দিয়ে ইনস্টল করা যেতে পারে যেমনটি নীচে দেখা গেছে:





pip ইনস্টল করার অনুরোধ
pip ইনস্টল করুন BeautifulSoup4

ইনস্টলেশনের সাফল্য নিশ্চিত করতে, পাইথনের ইন্টারেক্টিভ শেলটি সক্রিয় করুন যা টাইপ করে করা হয় অজগর টার্মিনালে।

তারপর উভয় লাইব্রেরি আমদানি করুন:



আমদানিঅনুরোধ
থেকেbs4আমদানিসুন্দর স্যুপ

কোন ত্রুটি না থাকলে আমদানি সফল।

প্রক্রিয়া

স্ক্রিপ্ট সহ একটি ওয়েবসাইটে লগ ইন করার জন্য এইচটিএমএল এর জ্ঞান এবং ওয়েব কিভাবে কাজ করে তার একটি ধারণা প্রয়োজন। ওয়েব কিভাবে কাজ করে তা সংক্ষেপে দেখা যাক।

ওয়েবসাইট দুটি প্রধান অংশ, ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড দিয়ে তৈরি। ক্লায়েন্ট-সাইড হল একটি ওয়েবসাইটের অংশ যার সঙ্গে ব্যবহারকারী ইন্টারঅ্যাক্ট করে, যখন সার্ভার-সাইড হল ওয়েবসাইটের অংশ যেখানে ব্যবসায়িক যুক্তি এবং অন্যান্য সার্ভার অপারেশন যেমন ডাটাবেস অ্যাক্সেস করা হয়।

যখন আপনি তার লিঙ্কের মাধ্যমে একটি ওয়েবসাইট খোলার চেষ্টা করেন, তখন আপনি সার্ভার-সাইডকে অনুরোধ করেন যে আপনি HTML ফাইল এবং অন্যান্য স্ট্যাটিক ফাইল যেমন CSS এবং জাভাস্ক্রিপ্ট আনুন। এই অনুরোধটি GET অনুরোধ হিসাবে পরিচিত। যাইহোক, যখন আপনি একটি ফর্ম পূরণ করছেন, একটি মিডিয়া ফাইল বা একটি নথি আপলোড করছেন, একটি পোস্ট তৈরি করুন এবং আসুন একটি সাবমিট বাটনে ক্লিক করি, আপনি সার্ভার সাইডে তথ্য পাঠাচ্ছেন। এই অনুরোধটি POST অনুরোধ হিসাবে পরিচিত।

আমাদের স্ক্রিপ্ট লেখার সময় এই দুটি ধারণা বোঝা গুরুত্বপূর্ণ হবে।

ওয়েবসাইট পরিদর্শন

এই নিবন্ধের ধারণাগুলি অনুশীলন করার জন্য, আমরা স্ক্র্যাপ করার জন্য উদ্ধৃতি ওয়েবসাইট

ওয়েবসাইটে প্রবেশ করার জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ডের মতো তথ্য প্রয়োজন।

যাইহোক যেহেতু এই ওয়েবসাইটটি কেবল ধারণার প্রমাণ হিসাবে ব্যবহৃত হয়, তাই কিছু যায় যায়। অতএব আমরা ব্যবহার করা হবে অ্যাডমিন ব্যবহারকারীর নাম হিসাবে এবং 12345 পাসওয়ার্ড হিসাবে।

প্রথমত, পৃষ্ঠার উত্সটি দেখা গুরুত্বপূর্ণ কারণ এটি ওয়েব পৃষ্ঠার কাঠামোর একটি ওভারভিউ দেবে। ওয়েব পেজে ডান ক্লিক করে এবং ভিউ পেজ সোর্সে ক্লিক করে এটি করা যেতে পারে। পরবর্তী, আপনি লগইন ফর্ম পরিদর্শন করুন। আপনি এটি লগইন বক্সগুলির একটিতে ডান ক্লিক করে এবং ক্লিক করে করেন উপাদান পরিদর্শন । পরিদর্শন উপাদান, আপনি দেখতে হবে ইনপুট ট্যাগ এবং তারপর একটি অভিভাবক ফর্ম তার উপরে কোথাও ট্যাগ করুন। এটি দেখায় যে লগইনগুলি মূলত ফর্ম হচ্ছে পোস্ট ওয়েবসাইটের সার্ভার-পাশে এড করুন।

এখন, নোট করুন নাম ব্যবহারকারীর নাম এবং পাসওয়ার্ড বাক্সগুলির জন্য ইনপুট ট্যাগগুলির বৈশিষ্ট্য, কোড লেখার সময় তাদের প্রয়োজন হবে। এই ওয়েবসাইটের জন্য, নাম ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য বৈশিষ্ট্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড যথাক্রমে

এরপরে, আমাদের জানতে হবে যে অন্যান্য প্যারামিটার আছে যা লগইন করার জন্য গুরুত্বপূর্ণ হবে। আসুন তাড়াতাড়ি এটি ব্যাখ্যা করি। ওয়েবসাইটের নিরাপত্তা বাড়ানোর জন্য, সাধারণত ক্রস সাইট ফোরজির আক্রমণ প্রতিরোধের জন্য টোকেন তৈরি করা হয়।

অতএব, যদি সেই টোকেনগুলি POST অনুরোধে যোগ না করা হয় তবে লগইন ব্যর্থ হবে। তাহলে আমরা কিভাবে এই ধরনের পরামিতি সম্পর্কে জানতে পারি?

আমাদের নেটওয়ার্ক ট্যাব ব্যবহার করতে হবে। গুগল ক্রোম বা মোজিলা ফায়ারফক্সে এই ট্যাবটি পেতে, বিকাশকারী সরঞ্জামগুলি খুলুন এবং নেটওয়ার্ক ট্যাবে ক্লিক করুন।

একবার আপনি নেটওয়ার্ক ট্যাবে থাকলে, বর্তমান পৃষ্ঠাটি রিফ্রেশ করার চেষ্টা করুন এবং আপনি অনুরোধগুলি আসছে লক্ষ্য করবেন। আমরা যখন লগ ইন করার চেষ্টা করি তখন পোস্ট অনুরোধগুলি পাঠানোর জন্য আপনার নজর রাখার চেষ্টা করা উচিত।

নেটওয়ার্ক ট্যাব খোলা থাকার সময় আমরা পরবর্তীতে কি করব তা এখানে। লগইন বিশদটি লিখুন এবং লগ ইন করার চেষ্টা করুন, প্রথম অনুরোধটি আপনি দেখতে পাবেন পোস্ট অনুরোধ।

POST অনুরোধে ক্লিক করুন এবং ফর্মের পরামিতিগুলি দেখুন। আপনি লক্ষ্য করবেন ওয়েবসাইটের একটি আছে csrf_token একটি মান সহ প্যারামিটার। যে মান একটি গতিশীল মান, অতএব, আমরা ব্যবহার করে এই ধরনের মান ক্যাপচার করতে হবে পাওয়া ব্যবহার করার আগে প্রথমে অনুরোধ করুন পোস্ট অনুরোধ

অন্যান্য ওয়েবসাইটগুলির জন্য আপনি কাজ করবেন, আপনি সম্ভবত দেখতে পাবেন না csrf_token কিন্তু গতিশীলভাবে উৎপন্ন অন্যান্য টোকেন থাকতে পারে। সময়ের সাথে সাথে, আপনি লগইন প্রচেষ্টা করার ক্ষেত্রে সত্যিকারের গুরুত্বপূর্ণ প্যারামিটারগুলি জানার ক্ষেত্রে আরও ভাল হয়ে উঠবেন।

কোড

প্রথমত, লগইন পৃষ্ঠার পৃষ্ঠার সামগ্রীতে অ্যাক্সেস পেতে আমাদের অনুরোধ এবং সুন্দরসুপ ব্যবহার করতে হবে।

থেকেঅনুরোধআমদানিসেশন
থেকেbs4আমদানিসুন্দর স্যুপহিসাবেবিএস

সঙ্গেসেশন() হিসাবেগুলি:
সাইট =গুলিপাওয়া('http://quotes.toscrape.com/login')
ছাপা(সাইটবিষয়বস্তু)

আমরা লগইন করার আগে এবং যদি আপনি লগইন কীওয়ার্ডটি অনুসন্ধান করেন তবে এটি লগইন পৃষ্ঠার বিষয়বস্তু মুদ্রণ করবে। কীওয়ার্ডটি পৃষ্ঠার সামগ্রীতে পাওয়া যাবে যা দেখায় যে আমরা এখনও লগ ইন করতে পারি নি।

পরবর্তী, আমরা জন্য অনুসন্ধান করবে csrf_token কীওয়ার্ড যা আগে নেটওয়ার্ক ট্যাব ব্যবহার করার সময় একটি প্যারামিটার হিসেবে পাওয়া গিয়েছিল। যদি কীওয়ার্ড একটি এর সাথে একটি মিল দেখায় ইনপুট ট্যাগ, তারপর প্রতিবার আপনি সুন্দরসুপ ব্যবহার করে স্ক্রিপ্ট চালানোর সময় মানটি বের করা যাবে।

থেকেঅনুরোধআমদানিসেশন
থেকেbs4আমদানিসুন্দর স্যুপহিসাবেবিএস

সঙ্গেসেশন() হিসাবেগুলি:
সাইট =গুলিপাওয়া('http://quotes.toscrape.com/login')
bs_content=বিএস(সাইটবিষয়বস্তু, 'html.parser')
টোকেন =bs_contentঅনুসন্ধান('ইনপুট', {'নাম':'csrf_token'})['মান']
login_data= {'ব্যবহারকারীর নাম':'অ্যাডমিন','পাসওয়ার্ড':'12345', 'csrf_token':টোকেন}
গুলিপোস্ট('http://quotes.toscrape.com/login',login_data)
হোম_পেজ=গুলিপাওয়া('http://quotes.toscrape.com')
ছাপা(হোম_পেজ।বিষয়বস্তু)

এটি লগ ইন করার পরে পৃষ্ঠার সামগ্রী মুদ্রণ করবে এবং যদি আপনি লগআউট কীওয়ার্ড অনুসন্ধান করেন। কীওয়ার্ডটি পৃষ্ঠার সামগ্রীতে পাওয়া যাবে যা দেখায় যে আমরা সফলভাবে লগ ইন করতে সক্ষম হয়েছি।

আসুন কোডের প্রতিটি লাইন দেখি।

থেকেঅনুরোধআমদানিসেশন
থেকেbs4আমদানিসুন্দর স্যুপহিসাবেবিএস

উপরের কোডের লাইনগুলি অনুরোধ লাইব্রেরি থেকে সেশন বস্তু এবং বিএস 4 লাইব্রেরি থেকে বিউটিফুলসপ বস্তু আমদানি করতে ব্যবহৃত হয় বিএস

সঙ্গেসেশন() হিসাবেগুলি:

অনুরোধ সেশন ব্যবহার করা হয় যখন আপনি একটি অনুরোধের প্রেক্ষাপট রাখতে চান, তাই কুকিজ এবং সেই অনুরোধ সেশনের সমস্ত তথ্য সংরক্ষণ করা যেতে পারে।

bs_content=বিএস(সাইটবিষয়বস্তু, 'html.parser')
টোকেন =bs_contentঅনুসন্ধান('ইনপুট', {'নাম':'csrf_token'})['মান']

এই কোডটি এখানে সুন্দরসুপ লাইব্রেরি ব্যবহার করে csrf_token ওয়েব পেজ থেকে বের করা যায় এবং তারপর টোকেন ভেরিয়েবলের জন্য নির্ধারিত হয়। আপনি বিউটিফুলসুপ ব্যবহার করে নোড থেকে ডেটা বের করার বিষয়ে জানতে পারেন।

login_data= {'ব্যবহারকারীর নাম':'অ্যাডমিন','পাসওয়ার্ড':'12345', 'csrf_token':টোকেন}
গুলিপোস্ট('http://quotes.toscrape.com/login',login_data)

এখানে কোডটি লগ ইন করার জন্য ব্যবহৃত প্যারামিটারগুলির একটি অভিধান তৈরি করে। অভিধানের কীগুলি হল নাম ইনপুট ট্যাগের বৈশিষ্ট্য এবং মান হল মান ইনপুট ট্যাগের বৈশিষ্ট্য।

দ্য পোস্ট পদ্ধতিটি প্যারামিটার সহ একটি পোস্ট অনুরোধ পাঠাতে এবং আমাদের লগ ইন করতে ব্যবহৃত হয়।

হোম_পেজ=গুলিপাওয়া('http://quotes.toscrape.com')
ছাপা(হোম_পেজ।বিষয়বস্তু)

লগইন করার পরে, উপরের কোডের এই লাইনগুলি কেবল পৃষ্ঠা থেকে তথ্য বের করে দেখায় যে লগইন সফল হয়েছে।

উপসংহার

পাইথন ব্যবহার করে ওয়েবসাইটগুলিতে লগ ইন করার প্রক্রিয়াটি বেশ সহজ, তবে ওয়েবসাইটগুলির সেটআপ একই নয় তাই কিছু সাইট অন্যদের তুলনায় লগ ইন করা আরও কঠিন প্রমাণ করবে। আপনার যা কিছু লগইন চ্যালেঞ্জ আছে তা কাটিয়ে ওঠার জন্য আরও অনেক কিছু করা যেতে পারে।

এই সবের মধ্যে সবচেয়ে গুরুত্বপূর্ণ বিষয় হল এইচটিএমএল, রিকুয়েস্টস, বিউটিফুলসুপের জ্ঞান এবং আপনার ওয়েব ব্রাউজারের ডেভেলপার টুলসের নেটওয়ার্ক ট্যাব থেকে প্রাপ্ত তথ্য বোঝার ক্ষমতা।