Selenium হলো একটি জনপ্রিয় ওয়েব ব্রাউজার অটোমেশন টুল, যা পাইথনের মতো বিভিন্ন প্রোগ্রামিং ভাষার মাধ্যমে ব্যবহার করা যায়। Selenium ব্যবহার করে ওয়েব ব্রাউজারে স্বয়ংক্রিয়ভাবে ক্লিক করা, ডেটা ইনপুট করা, পেজ নেভিগেট করা এবং স্ক্র্যাপিং করা সম্ভব।
Selenium ইনস্টলেশন
pip install selenium
ওয়েবড্রাইভার ডাউনলোড করা
Selenium দিয়ে ব্রাউজার নিয়ন্ত্রণ করতে হলে সংশ্লিষ্ট ব্রাউজারের ড্রাইভার ডাউনলোড করতে হবে, যেমন:
- Chrome: ChromeDriver
- Firefox: GeckoDriver
ড্রাইভারটি ডাউনলোড করে আপনার সিস্টেমে যুক্ত করুন।
Selenium দিয়ে একটি ওয়েব পেজ খুলা
উদাহরণ: একটি ওয়েব পেজ খুলে টাইটেল প্রিন্ট করা
from selenium import webdriver
# Chrome ব্রাউজার ওপেন করার জন্য
driver = webdriver.Chrome() # যদি ChromeDriver পাথে থাকে
# ওয়েবসাইটে নেভিগেট করা
driver.get("https://www.example.com")
# পেজের টাইটেল প্রিন্ট করা
print("Page Title:", driver.title)
# ব্রাউজার বন্ধ করা
driver.quit()
সাধারণ ব্রাউজার অপারেশন
১. HTML উপাদান খোঁজা
Selenium দিয়ে বিভিন্ন উপাদান (elements) খুঁজতে ব্যবহার করা যায়:
- find_element_by_id:
driver.find_element_by_id("id_name") - find_element_by_name:
driver.find_element_by_name("name") - find_element_by_class_name:
driver.find_element_by_class_name("class_name") - find_element_by_xpath:
driver.find_element_by_xpath("xpath_expression")
উদাহরণ:
# কোন বাটনে ক্লিক করা
button = driver.find_element_by_id("button_id")
button.click()
২. টেক্সট ইনপুট করা
search_box = driver.find_element_by_name("q")
search_box.send_keys("Python programming")
search_box.submit()
৩. এলিমেন্টের টেক্সট রিড করা
element = driver.find_element_by_id("element_id")
print("Element Text:", element.text)
পেজ নেভিগেশন
- Back এবং Forward:
driver.back() # পূর্ববর্তী পেজে ফিরে যাওয়া
driver.forward() # পরবর্তী পেজে যাওয়া
অপেক্ষা (Waits)
ওয়েব পেজ লোড হওয়ার জন্য Selenium-এ অপেক্ষা (wait) যোগ করা খুব গুরুত্বপূর্ণ। Selenium-এ সাধারণত দুই ধরনের অপেক্ষা ব্যবহৃত হয়:
Implicit Wait: এটি প্রতিটি উপাদান খুঁজতে নির্দিষ্ট সময়ের জন্য অপেক্ষা করে।
driver.implicitly_wait(10) # 10 সেকেন্ড অপেক্ষা করবে
Explicit Wait: নির্দিষ্ট উপাদান পাওয়া পর্যন্ত অপেক্ষা করে।
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# ১০ সেকেন্ড অপেক্ষা করবে নির্দিষ্ট উপাদানের জন্য
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "element_id"))
)
পেজ স্ক্রোল করা
Selenium দিয়ে পেজ স্ক্রোল করা যায়, যা স্ক্র্যাপিং এর সময় সহায়ক।
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # পেজের নিচে স্ক্রোল করা
উদাহরণ: গুগলে সার্চ করা
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.google.com")
search_box = driver.find_element_by_name("q")
search_box.send_keys("Python programming")
search_box.send_keys(Keys.RETURN)
# সার্চ রেজাল্ট থেকে প্রথম লিঙ্কটি বের করা
first_result = driver.find_element_by_css_selector("h3")
print("First Result Title:", first_result.text)
driver.quit()
সারসংক্ষেপ
Selenium একটি শক্তিশালী টুল যা ওয়েব ব্রাউজার অটোমেশন করতে ব্যবহৃত হয়। এটি বিভিন্ন উপাদান খুঁজে ইনপুট করা, ক্লিক করা, পেজ নেভিগেট করা এবং ওয়েব স্ক্র্যাপিং করতে সহায়ক। এটি API টেস্টিং, ফর্ম পূরণ, এবং বিভিন্ন রুটিন কাজ অটোমেট করতে ব্যবহৃত হয়।