কম্পিউটার টিউটোরিয়াল

পাইথনে BeautifulSoup এবং Requests ব্যবহার করে উইকিপিডিয়া ইনফোবক্স থেকে ডেটা স্ক্রেপিং


প্রয়োজনীয় লাইব্রেরি

pip install bs4 requests

পদ্ধতি

  1. requests.get() দিয়ে HTML ফেচ করুন
  2. BeautifulSoup দিয়ে পার্স করুন
  3. ব্রাউজারের ইন্সপেক্ট টুল দিয়ে টার্গেট এলিমেন্ট খুঁজুন
  4. find(), find_all(), CSS সিলেক্টর ব্যবহার করে ডেটা এক্সট্রাক্ট করুন

উদাহরণ: ভারতের উইকিপিডিয়া পেজ থেকে মোটো (Motto) এক্সট্রাক্ট


import requests
import bs4

URL = "https://en.wikipedia.org/wiki/India"

# HTTP রিকোয়েস্ট
response = requests.get(URL)

# HTML পার্স
soup = bs4.BeautifulSoup(response.text, 'html.parser')

# ইনফোবক্স টেবিল খুঁজুন
infobox = soup.find('table', {'class': 'infobox'})

# ৩য় সারি (tr) - মোটো থাকে
third_tr = infobox.find_all('tr')[2]

# নেস্টেড এলিমেন্ট থেকে টেক্সট এক্সট্রাক্ট
first_a = third_tr.div.find('a')
div = third_tr.div.div

motto = f"{first_a.text} {div.text[:len(div.text) - 3]}"
print(motto)
# আউটপুট: Satyameva Jayate "Truth Alone Triumphs"

গাণিতিক সিলেক্টর ব্যবহার (আধুনিক)


# CSS সিলেক্টর দিয়ে সরাসরি টার্গেট
motto_cell = soup.select_one('table.infobox tr:nth-of-type(3) div')
# বা আরও স্পেসিফিক
motto_text = soup.select_one('table.infobox tr:has(th:contains("Motto")) td')

বেস্ট প্র্যাক্টিস

  • User-Agent হেডার সেট করুন (ব্লক এড়াতে)
  • try-except দিয়ে নেটওয়ার্ক/পার্সিং এরর হ্যান্ডল করুন
  • time.sleep() দিয়ে রেট লিমিট মেনটেইন করুন
  • robots.txt চেক করুন

উপসংহার

BeautifulSoup + Requests দিয়ে উইকিপিডিয়া স্ক্রেপিং সহজ। ইনফোবক্স স্ট্রাকচাররেগুলার, তাই রিলায়েবল এক্সট্রাকশন সম্ভব। প্রোডাকশনে wikipedia-api লাইব্রেরি ব্যবহার করুন।

  1. পাইথনে তালিকা থেকে ডুপ্লিকেট সরানোর পদ্ধতি

  2. Python-এ কীবোর্ড থেকে কপি করা টেক্সট পেস্ট করার পদ্ধতি

  3. পাইথনে লেবেল (Label) থেকে টেক্সট রিমুভ করা

  4. পাইথনে উইকিপিডিয়া ডেটা এক্সট্র্যাক্ট করা