পাইথনে সেলেনিয়ামের ভূমিকা 3

Introduction Selenium Python 3



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

এই নিবন্ধটি আপনাকে দেখাবে কিভাবে আপনার লিনাক্স ডিস্ট্রিবিউশনে (যেমন, উবুন্টু) সেলেনিয়াম সেট আপ করবেন, সেইসাথে সেলেনিয়াম পাইথন 3 লাইব্রেরির সাথে কিভাবে বেসিক ওয়েব অটোমেশন এবং ওয়েব স্ক্র্যাপিং করবেন।







পূর্বশর্ত

এই নিবন্ধে ব্যবহৃত কমান্ড এবং উদাহরণগুলি চেষ্টা করার জন্য, আপনার অবশ্যই নিম্নলিখিতগুলি থাকতে হবে:



1) আপনার কম্পিউটারে একটি লিনাক্স বিতরণ (বিশেষত উবুন্টু) ইনস্টল করা আছে।
2) আপনার কম্পিউটারে পাইথন 3 ইনস্টল করা আছে।
3) আপনার কম্পিউটারে PIP 3 ইনস্টল করা আছে।
4) আপনার কম্পিউটারে ইনস্টল করা গুগল ক্রোম বা ফায়ারফক্স ওয়েব ব্রাউজার।



আপনি এই বিষয়গুলিতে অনেক নিবন্ধ খুঁজে পেতে পারেন LinuxHint.com । আপনার আরও সহায়তার প্রয়োজন হলে এই নিবন্ধগুলি পরীক্ষা করে দেখুন।





প্রকল্পের জন্য পাইথন 3 ভার্চুয়াল পরিবেশ প্রস্তুত করা হচ্ছে

পাইথন ভার্চুয়াল পরিবেশ একটি বিচ্ছিন্ন পাইথন প্রকল্প ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়। পিআইপি ব্যবহার করে আপনি যে পাইথন মডিউলগুলি ইনস্টল করবেন তা বিশ্বব্যাপী পরিবর্তে কেবল প্রকল্প ডিরেক্টরিতে ইনস্টল করা হবে।

পাইথন virtualenv পাইথন ভার্চুয়াল পরিবেশ পরিচালনা করতে মডিউল ব্যবহার করা হয়।



আপনি পাইথন ইনস্টল করতে পারেন virtualenv নিম্নরূপ পিআইপি 3 ব্যবহার করে বিশ্বব্যাপী মডিউল:

$ sudo pip3 virtualenv ইনস্টল করুন

PIP3 ডাউনলোড করবে এবং বিশ্বব্যাপী সমস্ত প্রয়োজনীয় মডিউল ইনস্টল করবে।

এই সময়ে, পাইথন virtualenv মডিউল বিশ্বব্যাপী ইনস্টল করা উচিত।

প্রকল্প ডিরেক্টরি তৈরি করুন পাইথন-সেলেনিয়াম-বেসিক/ আপনার বর্তমান কাজের ডিরেক্টরিতে, নিম্নরূপ:

$ mkdir -pv পাইথন-সেলেনিয়াম-বেসিক/ড্রাইভার

আপনার নতুন তৈরি প্রকল্প ডিরেক্টরিতে নেভিগেট করুন পাইথন-সেলেনিয়াম-বেসিক/ , নিম্নরূপ:

$সিডিপাইথন-সেলেনিয়াম-বেসিক/

নিম্নলিখিত কমান্ড দিয়ে আপনার প্রকল্প ডিরেক্টরিতে একটি পাইথন ভার্চুয়াল পরিবেশ তৈরি করুন:

$ virtualenv।env

পাইথন ভার্চুয়াল পরিবেশ এখন আপনার প্রকল্প ডিরেক্টরিতে তৈরি করা উচিত। ’

নিম্নলিখিত কমান্ডের মাধ্যমে আপনার প্রকল্প ডিরেক্টরিতে পাইথন ভার্চুয়াল পরিবেশ সক্রিয় করুন:

$ উৎস।env/বিন/সক্রিয় করুন

আপনি দেখতে পাচ্ছেন, পাইথন ভার্চুয়াল পরিবেশ এই প্রকল্প ডিরেক্টরিটির জন্য সক্রিয় করা হয়েছে।

সেলেনিয়াম পাইথন লাইব্রেরি ইনস্টল করা

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

আপনি PIP 3 ব্যবহার করে এই লাইব্রেরিটি ইনস্টল করতে পারেন, নিম্নরূপ:

$ pip3 সেলেনিয়াম ইনস্টল করুন

সেলেনিয়াম পাইথন লাইব্রেরি এখন ইনস্টল করা উচিত।

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

ফায়ারফক্স গেকো ড্রাইভার ইনস্টল করা

ফায়ারফক্স গেকো ড্রাইভার আপনাকে সেলেনিয়াম ব্যবহার করে ফায়ারফক্স ওয়েব ব্রাউজার নিয়ন্ত্রণ বা স্বয়ংক্রিয় করতে দেয়।

ফায়ারফক্স গেকো ড্রাইভার ডাউনলোড করতে, এখানে যান গিটহাব মোজিলা/জেকোড্রাইভারের পৃষ্ঠা প্রকাশ করে একটি ওয়েব ব্রাউজার থেকে।

আপনি দেখতে পাচ্ছেন, এই নিবন্ধটি লেখার সময় v0.26.0 হল ফায়ারফক্স গেকো ড্রাইভারের সর্বশেষ সংস্করণ।

ফায়ারফক্স গেকো ড্রাইভার ডাউনলোড করতে, একটু নিচে স্ক্রোল করুন এবং আপনার অপারেটিং সিস্টেম আর্কিটেকচারের উপর নির্ভর করে লিনাক্স গেকোড্রাইভার tar.gz আর্কাইভে ক্লিক করুন।

আপনি যদি 32-বিট অপারেটিং সিস্টেম ব্যবহার করেন, তাহলে geckodriver-v0.26.0-linux32.tar.gz লিঙ্ক

আপনি যদি 64-বিট অপারেটিং সিস্টেম ব্যবহার করেন, তাহলে geckodriver-v0.26.0-linuxx64.tar.gz লিঙ্ক

আমার ক্ষেত্রে, আমি ফায়ারফক্স গেকো ড্রাইভারের 64-বিট সংস্করণ ডাউনলোড করব।

আপনার ব্রাউজারের আর্কাইভ সংরক্ষণ করতে অনুরোধ করা উচিত। নির্বাচন করুন ফাইল সংরক্ষণ এবং তারপর ক্লিক করুন ঠিক আছে

ফায়ারফক্স গেকো ড্রাইভার আর্কাইভটি ডাউনলোড করতে হবে ~/ডাউনলোড ডিরেক্টরি।

নিষ্কাশন geckodriver-v0.26.0-linux64.tar.gz থেকে সংরক্ষণাগার ~/ডাউনলোড জন্য ডিরেক্টরি ড্রাইভার/ নিম্নলিখিত কমান্ডটি প্রবেশ করে আপনার প্রকল্পের ডিরেক্টরি:

$টার -xzf~/ডাউনলোড/geckodriver-v0.26.0-linux64.tar.gz-সিড্রাইভার/

একবার ফায়ারফক্স গেকো ড্রাইভার আর্কাইভ বের করা হলে, একটি নতুন গেকো ড্রাইভার বাইনারি ফাইল তৈরি করতে হবে ড্রাইভার/ আপনার প্রকল্পের ডিরেক্টরি, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

সেলেনিয়াম ফায়ারফক্স গেকো ড্রাইভার পরীক্ষা করা হচ্ছে

এই বিভাগে, আমি আপনাকে দেখাব কিভাবে ফায়ারফক্স গেকো ড্রাইভার কাজ করছে কিনা তা পরীক্ষা করার জন্য আপনার প্রথম সেলেনিয়াম পাইথন স্ক্রিপ্ট কিভাবে সেট আপ করবেন।

প্রথমে, প্রকল্প ডিরেক্টরি খুলুন পাইথন-সেলেনিয়াম-বেসিক/ আপনার প্রিয় IDE বা সম্পাদকের সাথে। এই নিবন্ধে, আমি ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করব।

নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex01.py , এবং স্ক্রিপ্টে নিম্নলিখিত লাইনগুলি টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি
থেকে সময় আমদানিঘুম
ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')
ব্রাউজার।পাওয়া('http://www.google.com')
ঘুম(5)
ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে, সংরক্ষণ করুন ex01.py পাইথন স্ক্রিপ্ট।

আমি এই নিবন্ধের পরবর্তী বিভাগে কোড ব্যাখ্যা করব।

নিচের লাইনটি সেলেনিয়ামকে ফায়ারফক্স গেকো ড্রাইভার ব্যবহার করার জন্য কনফিগার করে ড্রাইভার/ আপনার প্রকল্পের ডিরেক্টরি।

ফায়ারফক্স গেকো ড্রাইভার সেলেনিয়ামের সাথে কাজ করছে কিনা তা পরীক্ষা করার জন্য, নিম্নলিখিতটি চালান ex01.py পাইথন স্ক্রিপ্ট:

$ python3 ex01।py

ফায়ারফক্স ওয়েব ব্রাউজারের স্বয়ংক্রিয়ভাবে গুগল ডট কম পরিদর্শন করা উচিত এবং 5 সেকেন্ডের পরে নিজেকে বন্ধ করা উচিত। যদি এটি ঘটে থাকে, তাহলে সেলেনিয়াম ফায়ারফক্স গেকো ড্রাইভার সঠিকভাবে কাজ করছে।

Chrome ওয়েব ড্রাইভার ইনস্টল করা হচ্ছে

ক্রোম ওয়েব ড্রাইভার আপনাকে সেলেনিয়াম ব্যবহার করে গুগল ক্রোম ওয়েব ব্রাউজার নিয়ন্ত্রণ বা স্বয়ংক্রিয় করার অনুমতি দেয়।

আপনাকে অবশ্যই আপনার গুগল ক্রোম ওয়েব ব্রাউজারের ক্রোম ওয়েব ড্রাইভারের একই সংস্করণ ডাউনলোড করতে হবে।

আপনার গুগল ক্রোম ওয়েব ব্রাউজারের সংস্করণ নম্বর জানতে, ভিজিট করুন chrome: // settings/help গুগল ক্রোমে। সংস্করণ নম্বরটি হওয়া উচিত ক্রোম সম্পর্কে বিভাগ, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

আমার ক্ষেত্রে, সংস্করণ নম্বর হল 83.0.4103.116 । সংস্করণ সংখ্যার প্রথম তিনটি অংশ ( 83.0.4103 , আমার ক্ষেত্রে) অবশ্যই ক্রোম ওয়েব ড্রাইভার সংস্করণ নম্বরের প্রথম তিনটি অংশের সাথে মেলে।

ক্রোম ওয়েব ড্রাইভার ডাউনলোড করতে, এ যান অফিসিয়াল ক্রোম ড্রাইভার ডাউনলোড পৃষ্ঠা

মধ্যে বর্তমান রিলিজ বিভাগে, গুগল ক্রোম ওয়েব ব্রাউজারের সর্বাধিক বর্তমান রিলিজের জন্য ক্রোম ওয়েব ড্রাইভার পাওয়া যাবে, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

আপনি যে গুগল ক্রোম ব্যবহার করছেন সেটি যদি না হয় বর্তমান রিলিজ বিভাগ, একটু নিচে স্ক্রোল করুন, এবং আপনি আপনার পছন্দসই সংস্করণ খুঁজে বের করা উচিত।

একবার আপনি সঠিক ক্রোম ওয়েব ড্রাইভার সংস্করণে ক্লিক করলে, এটি আপনাকে নিম্নলিখিত পৃষ্ঠায় নিয়ে যাবে। ক্লিক করুন chromedriver_linux64.zip লিঙ্ক, নীচের স্ক্রিনশটে উল্লেখ করা হয়েছে।

ক্রোম ওয়েব ড্রাইভার আর্কাইভ এখন ডাউনলোড করা উচিত।

ক্রোম ওয়েব ড্রাইভার আর্কাইভ এখন ডাউনলোড করা উচিত ~/ডাউনলোড ডিরেক্টরি।

আপনি নিষ্কাশন করতে পারেন chromedriver-linux64.zip থেকে সংরক্ষণাগার ~/ডাউনলোড জন্য ডিরেক্টরি ড্রাইভার/ নিম্নলিখিত কমান্ড দিয়ে আপনার প্রকল্পের ডিরেক্টরি:

$ আনজিপ~/ডাউনলোড/chromedriver_linux64।zip-ডি ড্রাইভার/

একবার ক্রোম ওয়েব ড্রাইভার আর্কাইভ বের করা হলে, একটি নতুন ক্রোমড্রাইভার বাইনারি ফাইল তৈরি করতে হবে ড্রাইভার/ আপনার প্রকল্পের ডিরেক্টরি, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

সেলেনিয়াম ক্রোম ওয়েব ড্রাইভার পরীক্ষা করা হচ্ছে

এই বিভাগে, আমি আপনাকে দেখাব কিভাবে ক্রোম ওয়েব ড্রাইভার কাজ করছে কিনা তা পরীক্ষা করার জন্য আপনার প্রথম সেলেনিয়াম পাইথন স্ক্রিপ্ট কিভাবে সেট আপ করবেন।

প্রথমে নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex02.py , এবং স্ক্রিপ্টে কোডগুলির নিম্নলিখিত লাইনগুলি টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি
থেকে সময় আমদানিঘুম
ব্রাউজার=ওয়েবড্রাইভার।ক্রোম(এক্সিকিউটেবল_পথ='./drivers/chromedriver')
ব্রাউজার।পাওয়া('http://www.google.com')
ঘুম(5)
ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে, সংরক্ষণ করুন ex02.py পাইথন স্ক্রিপ্ট।

আমি এই নিবন্ধের পরবর্তী বিভাগে কোড ব্যাখ্যা করব।

নিচের লাইনটি সেলেনিয়ামকে ক্রোম ওয়েব ড্রাইভার থেকে ব্যবহার করতে কনফিগার করে ড্রাইভার/ আপনার প্রকল্পের ডিরেক্টরি।

ক্রোম ওয়েব ড্রাইভার সেলেনিয়ামের সাথে কাজ করছে কিনা তা পরীক্ষা করতে, চালান ex02.py পাইথন স্ক্রিপ্ট, নিম্নরূপ:

$ python3 ex01।py

গুগল ক্রোম ওয়েব ব্রাউজারের স্বয়ংক্রিয়ভাবে গুগল ডট কম পরিদর্শন করা উচিত এবং 5 সেকেন্ড পরে নিজেকে বন্ধ করা উচিত। যদি এটি ঘটে থাকে, তাহলে সেলেনিয়াম ফায়ারফক্স গেকো ড্রাইভার সঠিকভাবে কাজ করছে।

সেলেনিয়ামের সাথে ওয়েব স্ক্র্যাপিংয়ের মূল বিষয়গুলি

আমি এখন থেকে ফায়ারফক্স ওয়েব ব্রাউজার ব্যবহার করব। আপনি চাইলে ক্রোমও ব্যবহার করতে পারেন।

একটি মৌলিক সেলেনিয়াম পাইথন স্ক্রিপ্ট নীচের স্ক্রিনশটে দেখানো স্ক্রিপ্টের মতো হওয়া উচিত।

প্রথমে, সেলেনিয়াম আমদানি করুন ওয়েবড্রাইভার থেকে সেলেনিয়াম মডিউল

পরবর্তী, আমদানি করুন চাবি থেকে selenium.webdriver.common.keys । এটি আপনাকে সেলেনিয়াম থেকে স্বয়ংক্রিয়ভাবে ব্রাউজারে কীবোর্ড কী প্রেস পাঠাতে সহায়তা করবে।

নিচের লাইনটি একটি তৈরি করে ব্রাউজার ফায়ারফক্স গেকো ড্রাইভার (ওয়েবড্রাইভার) ব্যবহার করে ফায়ারফক্স ওয়েব ব্রাউজারের জন্য বস্তু। আপনি এই বস্তু ব্যবহার করে ফায়ারফক্স ব্রাউজার অ্যাকশন নিয়ন্ত্রণ করতে পারেন।

একটি ওয়েবসাইট বা URL লোড করতে (আমি ওয়েবসাইটটি লোড করব https://www.duckduckgo.com ), কল করুন পাওয়া() এর পদ্ধতি ব্রাউজার আপনার ফায়ারফক্স ব্রাউজারে বস্তু।

সেলেনিয়াম ব্যবহার করে, আপনি আপনার পরীক্ষা লিখতে পারেন, ওয়েব স্ক্র্যাপিং করতে পারেন এবং অবশেষে, ব্যবহার করে ব্রাউজার বন্ধ করতে পারেন ছেড়ে দিন () এর পদ্ধতি ব্রাউজার বস্তু

উপরে একটি সেলেনিয়াম পাইথন স্ক্রিপ্টের মৌলিক বিন্যাস। আপনি আপনার সমস্ত সেলেনিয়াম পাইথন স্ক্রিপ্টে এই লাইনগুলি লিখবেন।

উদাহরণ 1: একটি ওয়েবপেজের শিরোনাম প্রিন্ট করা

এটি সেলেনিয়াম ব্যবহার করে আলোচিত সবচেয়ে সহজ উদাহরণ হবে। এই উদাহরণে, আমরা যে ওয়েবপেজটি পরিদর্শন করব তার শিরোনাম মুদ্রণ করব।

নতুন ফাইল তৈরি করুন ex04.py এবং এতে কোডের নিচের লাইনগুলো টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি

ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')

ব্রাউজার।পাওয়া('https://www.duckduckgo.com')
ছাপা('শিরোনাম: %s'% ব্রাউজার।শিরোনাম)
ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে ফাইলটি সেভ করুন।

এখানে browser.title পরিদর্শন করা ওয়েবপেজের শিরোনাম অ্যাক্সেস করতে ব্যবহৃত হয় এবং ছাপা() ফাংশনটি কনসোলে শিরোনাম মুদ্রণ করতে ব্যবহৃত হবে।

চালানোর পর ex04.py স্ক্রিপ্ট, এটি উচিত:

1) ফায়ারফক্স খুলুন
2) আপনার কাঙ্ক্ষিত ওয়েবপেজ লোড করুন
3) পৃষ্ঠার শিরোনাম আনুন
4) কনসোলে শিরোনাম মুদ্রণ করুন
5) এবং অবশেষে, ব্রাউজারটি বন্ধ করুন

আপনি দেখতে পারেন, ex04.py স্ক্রিপ্ট ওয়েবপৃষ্ঠার শিরোনামটি সুন্দরভাবে কনসোলে মুদ্রিত করেছে।

$ python3 ex04।py

উদাহরণ 2: একাধিক ওয়েবপেজের শিরোনাম মুদ্রণ

পূর্ববর্তী উদাহরণের মতো, আপনি পাইথন লুপ ব্যবহার করে একাধিক ওয়েবপেজের শিরোনাম মুদ্রণ করতে একই পদ্ধতি ব্যবহার করতে পারেন।

এটি কীভাবে কাজ করে তা বুঝতে, নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex05.py এবং স্ক্রিপ্টে কোডের নিম্নলিখিত লাইনগুলি টাইপ করুন:

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি

ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')


urls= ['https://www.duckduckgo.com', 'https://linuxhint.com', 'https://yahoo.com']
জন্যurlভিতরেurls:
ব্রাউজার।পাওয়া(url)
ছাপা('শিরোনাম: %s'% ব্রাউজার।শিরোনাম)
ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে, পাইথন স্ক্রিপ্টটি সংরক্ষণ করুন ex05.py

এখানে urls তালিকা প্রতিটি ওয়েবপেজের ইউআরএল রাখে।

প্রতি জন্য এর মাধ্যমে পুনরাবৃত্তি করতে লুপ ব্যবহার করা হয় urls পন্যের তালিকা.

প্রতিটি পুনরাবৃত্তিতে, সেলেনিয়াম ব্রাউজারকে দেখার জন্য বলে url এবং ওয়েবপেজের শিরোনাম পান। একবার সেলেনিয়াম ওয়েবপৃষ্ঠার শিরোনাম বের করলে, এটি কনসোলে মুদ্রিত হয়।

পাইথন স্ক্রিপ্ট চালান ex05.py , এবং আপনার প্রতিটি ওয়েবপেজের শিরোনাম দেখতে হবে urls তালিকা

$ python3 ex05।py

এটি সেলেনিয়াম কিভাবে একাধিক ওয়েবপেজ বা ওয়েবসাইটের মাধ্যমে একই কাজ সম্পাদন করতে পারে তার একটি উদাহরণ।

উদাহরণ 3: একটি ওয়েবপেজ থেকে ডেটা বের করা

এই উদাহরণে, আমি আপনাকে সেলেনিয়াম ব্যবহার করে ওয়েবপৃষ্ঠা থেকে তথ্য আহরণের মূল বিষয়গুলি দেখাব। এটি ওয়েব স্ক্র্যাপিং নামেও পরিচিত।

প্রথমে, পরিদর্শন করুন Random.org ফায়ারফক্স থেকে লিঙ্ক। পৃষ্ঠাটি একটি এলোমেলো স্ট্রিং তৈরি করা উচিত, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন।

সেলেনিয়াম ব্যবহার করে এলোমেলো স্ট্রিং ডেটা বের করতে, আপনাকে অবশ্যই ডেটার HTML প্রতিনিধিত্ব জানতে হবে।

HTML এ র্যান্ডম স্ট্রিং ডেটা কিভাবে উপস্থাপন করা হয় তা দেখতে, র্যান্ডম স্ট্রিং ডেটা নির্বাচন করুন এবং ডান মাউস বোতাম (RMB) টিপুন এবং ক্লিক করুন উপাদান পরিদর্শন (প্রশ্ন) , নীচের স্ক্রিনশটে উল্লেখ করা হয়েছে।

তথ্যের HTML উপস্থাপনা প্রদর্শন করা উচিত ইন্সপেক্টর ট্যাব, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

আপনি এ ক্লিক করতে পারেন পরিদর্শন আইকন ( ) পৃষ্ঠা থেকে তথ্য পরিদর্শন করতে।

পরিদর্শন আইকনে ক্লিক করুন () এবং আপনি যে র্যান্ডম স্ট্রিং ডেটা বের করতে চান তার উপর ঘুরুন। ডেটার এইচটিএমএল উপস্থাপনা আগের মতই প্রদর্শন করা উচিত।

আপনি দেখতে পাচ্ছেন, এলোমেলো স্ট্রিং ডেটা এইচটিএমএল -এ আবৃত জন্য ট্যাগ এবং ক্লাস অন্তর্ভুক্ত তথ্য

এখন যেহেতু আমরা যে ডেটা বের করতে চাই তার এইচটিএমএল উপস্থাপনা জানি, সেলেনিয়াম ব্যবহার করে ডেটা বের করতে আমরা পাইথন স্ক্রিপ্ট তৈরি করব।

নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex06.py এবং স্ক্রিপ্টে কোডগুলির নিম্নলিখিত লাইনগুলি টাইপ করুন

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি

ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')

ব্রাউজার।পাওয়া('https://www.random.org/strings/?num=1&len=20&digits
= on & upperalpha = on & loweralpha = on & unique = on & format = html & rnd = new '
)

dataElement=ব্রাউজার।find_element_by_css_selector('pre.data')
ছাপা(dataElement।পাঠ্য)
ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে, সংরক্ষণ করুন ex06.py পাইথন স্ক্রিপ্ট।

এখানে browser.get () পদ্ধতি ফায়ারফক্স ব্রাউজারে ওয়েবপেজ লোড করে।

দ্য browser.find_element_by_css_selector () পদ্ধতি নির্দিষ্ট উপাদানটির জন্য পৃষ্ঠার HTML কোড অনুসন্ধান করে এবং এটি ফেরত দেয়।

এই ক্ষেত্রে, উপাদান হবে pre.data , দ্য জন্য ক্লাসের নাম আছে এমন ট্যাগ তথ্য

নিচে pre.data উপাদান সংরক্ষণ করা হয়েছে dataElement পরিবর্তনশীল

স্ক্রিপ্ট তারপর নির্বাচিত পাঠ্য বিষয়বস্তু মুদ্রণ করে pre.data উপাদান

আপনি যদি চালান ex06.py পাইথন স্ক্রিপ্ট, এটি ওয়েবপৃষ্ঠা থেকে এলোমেলো স্ট্রিং ডেটা বের করা উচিত, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পারেন।

$ python3 ex06।py

আপনি দেখতে পাচ্ছেন, প্রতিবার আমি চালাই ex06.py পাইথন স্ক্রিপ্ট, এটি ওয়েবপেজ থেকে একটি ভিন্ন র্যান্ডম স্ট্রিং ডেটা বের করে।

উদাহরণ 4: ওয়েবপেজ থেকে ডেটার তালিকা বের করা

পূর্ববর্তী উদাহরণটি আপনাকে দেখিয়েছে কিভাবে সেলেনিয়াম ব্যবহার করে একটি ওয়েবপৃষ্ঠা থেকে একটি একক তথ্য উপাদান বের করা যায়। এই উদাহরণে, আমি আপনাকে দেখাব কিভাবে একটি ওয়েবপৃষ্ঠা থেকে তথ্য তালিকা বের করতে সেলেনিয়াম ব্যবহার করতে হয়।

প্রথমে, পরিদর্শন করুন random-name-generator.info আপনার ফায়ারফক্স ওয়েব ব্রাউজার থেকে। এই ওয়েবসাইটটি প্রতিবার আপনি পৃষ্ঠাটি পুনরায় লোড করার সময় দশটি এলোমেলো নাম তৈরি করবে, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন। আমাদের লক্ষ্য সেলেনিয়াম ব্যবহার করে এই এলোমেলো নামগুলি বের করা।

আপনি যদি নাম তালিকাটি আরও ঘনিষ্ঠভাবে পরিদর্শন করেন, আপনি দেখতে পারেন যে এটি একটি আদেশকৃত তালিকা ( মারা ট্যাগ)। দ্য মারা ট্যাগটিতে ক্লাসের নামও রয়েছে নামের তালিকা । প্রতিটি এলোমেলো নাম একটি তালিকা আইটেম হিসাবে উপস্থাপন করা হয় ( ট্যাগ) এর ভিতরে মারা ট্যাগ

এই এলোমেলো নামগুলি বের করতে, নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex07.py এবং স্ক্রিপ্টে কোডগুলির নিম্নলিখিত লাইনগুলি টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি

ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')

ব্রাউজার।পাওয়া('http://random-name-generator.info/')

নামের তালিকা=ব্রাউজার।find_elements_by_css_selector('ol.nameList li')

জন্যনামভিতরেনামের তালিকা:
ছাপা(নামপাঠ্য)

ব্রাউজার।প্রস্থান()

একবার হয়ে গেলে, সংরক্ষণ করুন ex07.py পাইথন স্ক্রিপ্ট।

এখানে browser.get () পদ্ধতি ফায়ারফক্স ব্রাউজারে এলোমেলো নাম জেনারেটর ওয়েবপেজ লোড করে।

দ্য browser.find_elements_by_css_selector () পদ্ধতিটি CSS নির্বাচক ব্যবহার করে ol.nameList লি সব খুঁজে পেতে ভিতরে উপাদান মারা ক্লাসের নাম থাকা ট্যাগ নামের তালিকা । আমি নির্বাচিত সমস্ত সংরক্ষণ করেছি মধ্যে উপাদান নামের তালিকা পরিবর্তনশীল

প্রতি জন্য এর মাধ্যমে পুনরাবৃত্তি করতে লুপ ব্যবহার করা হয় নামের তালিকা তালিকা উপাদান প্রতিটি পুনরাবৃত্তিতে, এর বিষয়বস্তু উপাদানটি কনসোলে মুদ্রিত হয়।

আপনি যদি চালান ex07.py পাইথন স্ক্রিপ্ট, এটি ওয়েবপেজ থেকে সমস্ত এলোমেলো নাম আনবে এবং স্ক্রিনে মুদ্রণ করবে, যেমনটি আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন।

$ python3 ex07।py

যদি আপনি দ্বিতীয়বার স্ক্রিপ্টটি চালান, তবে এটি র্যান্ডম ব্যবহারকারীর নামের একটি নতুন তালিকা ফেরত দেওয়া উচিত, যেমন আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন।

উদাহরণ 5: ফর্ম জমা দেওয়া - DuckDuckGo এ অনুসন্ধান করা

এই উদাহরণটি প্রথম উদাহরণের মতোই সহজ। এই উদাহরণে, আমি DuckDuckGo সার্চ ইঞ্জিন পরিদর্শন করব এবং শব্দটি অনুসন্ধান করব সেলেনিয়াম hq সেলেনিয়াম ব্যবহার করে।

প্রথমে, পরিদর্শন করুন DuckDuckGo সার্চ ইঞ্জিন ফায়ারফক্স ওয়েব ব্রাউজার থেকে।

যদি আপনি অনুসন্ধান ইনপুট ক্ষেত্রটি পরিদর্শন করেন, তবে এটিতে আইডি থাকা উচিত সার্চ_ফর্ম_ইনপুট_হোমপেজ , যেমন আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন।

এখন, নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex08.py এবং স্ক্রিপ্টে কোডগুলির নিম্নলিখিত লাইনগুলি টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি
ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')
ব্রাউজার।পাওয়া('https://duckduckgo.com/')
সার্চ ইনপুট=ব্রাউজার।find_element_by_id('সার্চ_ফর্ম_ইনপুট_হোমপেজ')
সার্চ ইনপুট।send_keys('সেলেনিয়াম এইচকিউ'+ কী।লিখুন)

একবার হয়ে গেলে, সংরক্ষণ করুন ex08.py পাইথন স্ক্রিপ্ট।

এখানে browser.get () পদ্ধতিটি ফায়ারফক্স ওয়েব ব্রাউজারে DuckDuckGo সার্চ ইঞ্জিনের হোমপেজ লোড করে।

দ্য browser.find_element_by_id () পদ্ধতিটি আইডি দিয়ে ইনপুট উপাদান নির্বাচন করে সার্চ_ফর্ম_ইনপুট_হোমপেজ এবং এটি সংরক্ষণ করে সার্চ ইনপুট পরিবর্তনশীল

দ্য searchInput.send_keys () পদ্ধতিটি ইনপুট ক্ষেত্রে কী প্রেস ডেটা পাঠানোর জন্য ব্যবহৃত হয়। এই উদাহরণে, এটি স্ট্রিং পাঠায় সেলেনিয়াম hq , এবং এন্টার কী ব্যবহার করে চাপা হয় কেন্দ্র ধ্রুবক

যত তাড়াতাড়ি DuckDuckGo সার্চ ইঞ্জিন এন্টার কী প্রেস করে ( কেন্দ্র ), এটি অনুসন্ধান করে এবং ফলাফল প্রদর্শন করে।

চালান ex08.py পাইথন স্ক্রিপ্ট, নিম্নরূপ:

$ python3 ex08।py

আপনি দেখতে পাচ্ছেন, ফায়ারফক্স ওয়েব ব্রাউজার DuckDuckGo সার্চ ইঞ্জিন পরিদর্শন করেছে।

এটি স্বয়ংক্রিয়ভাবে টাইপ করা হয়েছে সেলেনিয়াম hq সার্চ টেক্সট বক্সে।

যত তাড়াতাড়ি ব্রাউজারটি এন্টার কী টিপুন ( কেন্দ্র ), এটি অনুসন্ধান ফলাফল প্রদর্শন করে।

উদাহরণ 6: W3Schools.com এ একটি ফর্ম জমা দেওয়া

উদাহরণ 5, DuckDuckGo সার্চ ইঞ্জিন ফর্ম জমা দেওয়া সহজ ছিল। আপনাকে শুধু এন্টার কী টিপতে হবে। কিন্তু সব ফর্ম জমা দেওয়ার ক্ষেত্রে এটি হবে না। এই উদাহরণে, আমি আপনাকে আরও জটিল ফর্ম হ্যান্ডলিং দেখাব।

প্রথমে, পরিদর্শন করুন W3Schools.com এর HTML ফর্ম পৃষ্ঠা ফায়ারফক্স ওয়েব ব্রাউজার থেকে। পৃষ্ঠাটি লোড হয়ে গেলে, আপনার একটি উদাহরণ ফর্ম দেখা উচিত। এই ফর্মটি আমরা এই উদাহরণে জমা দেব।

আপনি ফর্ম পরিদর্শন করলে, নামের প্রথম অংশ ইনপুট ক্ষেত্রের আইডি থাকতে হবে নাম , দ্য নামের শেষাংশ ইনপুট ক্ষেত্রের আইডি থাকতে হবে নাম , এবং জমা বাটন থাকা উচিত টাইপ জমা দিন , যেমন আপনি নীচের স্ক্রিনশটে দেখতে পাচ্ছেন।

সেলেনিয়াম ব্যবহার করে এই ফর্ম জমা দিতে, নতুন পাইথন স্ক্রিপ্ট তৈরি করুন ex09.py এবং স্ক্রিপ্টে কোডগুলির নিম্নলিখিত লাইনগুলি টাইপ করুন।

থেকেসেলেনিয়ামআমদানিওয়েবড্রাইভার
থেকেসেলেনিয়ামওয়েবড্রাইভারসাধারণচাবি আমদানিচাবি
ব্রাউজার=ওয়েবড্রাইভার।ফায়ারফক্স(এক্সিকিউটেবল_পথ='./drivers/geckodriver')
ব্রাউজার।পাওয়া('https://www.w3schools.com/html/html_forms.asp')
নাম=ব্রাউজার।find_element_by_id('নাম')
নামপরিষ্কার()
নামsend_keys('Shahriar')
নাম=ব্রাউজার।find_element_by_id('নাম')
নামপরিষ্কার()
নামsend_keys('Shovon')
জমা বাটন=ব্রাউজার।find_element_by_css_selector('ইনপুট [টাইপ =' জমা দিন ']')
জমা বাটন.send_keys(চাবি।লিখুন)

একবার হয়ে গেলে, সংরক্ষণ করুন ex09.py পাইথন স্ক্রিপ্ট।

এখানে browser.get () পদ্ধতিটি ফায়ারফক্স ওয়েব ব্রাউজারে W3schools HTML ফর্ম পৃষ্ঠা খুলবে।

দ্য browser.find_element_by_id () পদ্ধতি আইডি দ্বারা ইনপুট ক্ষেত্র খুঁজে বের করে নাম এবং নাম এবং এটি তাদের মধ্যে সংরক্ষণ করে নাম এবং নাম যথাক্রমে ভেরিয়েবল।

দ্য fname.clear () এবং lname.clear () পদ্ধতিগুলি ডিফল্ট প্রথম নাম পরিষ্কার করে (জন) নাম মান এবং শেষ নাম (ডো) নাম ইনপুট ক্ষেত্র থেকে মান।

দ্য fname.send_keys () এবং lname.send_keys () পদ্ধতির ধরন Shahriar এবং Shovon মধ্যে নামের প্রথম অংশ এবং নামের শেষাংশ ইনপুট ক্ষেত্র যথাক্রমে।

দ্য browser.find_element_by_css_selector () পদ্ধতি নির্বাচন করে জমা বাটন ফর্ম এবং এটি সংরক্ষণ করে জমা বাটন পরিবর্তনশীল

দ্য SubmitButton.send_keys () পদ্ধতিটি এন্টার কী প্রেস পাঠায় ( কেন্দ্র ) থেকে জমা বাটন ফর্মের। এই ক্রিয়াটি ফর্ম জমা দেয়।

চালান ex09.py পাইথন স্ক্রিপ্ট, নিম্নরূপ:

$ python3 ex09।py

আপনি দেখতে পাচ্ছেন, সঠিক ইনপুট সহ ফর্মটি স্বয়ংক্রিয়ভাবে জমা দেওয়া হয়েছে।

উপসংহার

এই নিবন্ধটি আপনাকে পাইথন 3 এ সেলেনিয়াম ব্রাউজার টেস্টিং, ওয়েব অটোমেশন এবং ওয়েব স্ক্র্যাপিং লাইব্রেরি দিয়ে শুরু করতে সাহায্য করবে। অফিসিয়াল সেলেনিয়াম পাইথন ডকুমেন্টেশন