1. Home
  2. ওয়েব স্ক্র্যাপিং

ওয়েব স্ক্র্যাপিং

🕸️ ওয়েব স্ক্র্যাপিং কী?

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


🔧 কোন লাইব্রেরি ব্যবহার করবো?

আমরা সাধারণত তিনটা টুল বা লাইব্রেরি ব্যবহার করি:

লাইব্রেরিকাজউপকারিতাসীমাবদ্ধতা
BeautifulSoupHTML/XML পার্স করাসহজ, বিগিনারদের জন্য ভালোJavaScript দিয়ে তৈরি কনটেন্ট স্ক্র্যাপ করতে পারে না
Seleniumব্রাউজার অটোমেশনJS ওয়েবসাইটেও কাজ করেধীরে কাজ করে
Scrapyবড় স্কেল ওয়েব স্ক্র্যাপিং ফ্রেমওয়ার্কফাস্ট, পাওয়ারফুলশেখা কঠিন

🎯 শুরুর জন্য কী কী জানা দরকার?

✅ পাইথনের কিছু বেসিক জিনিস:

  • print("Hello World")
  • list, dictionary
  • for loop
  • ফাইল লেখালেখি (file I/O)
  • pandas লাইব্রেরি (Data Analysis করার জন্য)

✅ HTML সিলেক্টর জানা

যেহেতু আমরা HTML এর উপর কাজ করব, কিছু সিলেক্টর জানা লাগবে:

👉 ট্যাগ নাম দিয়ে সিলেক্ট:

<div>Hello</div>
<p>Paragraph</p>
div { color: red; }
p { font-size: 14px; }

👉 ক্লাস দিয়ে:

<p class="highlight">This is important</p>
.highlight { font-weight: bold; }

👉 আইডি দিয়ে:

<div id="header">Header Section</div>
#header { background-color: gray; }

👉 কম্বিনেশন:

<div class="container">
  <p>This is paragraph</p>
</div>
.container p { color: green; }

🥣 BeautifulSoup দিয়ে শুরু করা যাক!

উদাহরণ ১: একটা সাইট থেকে টাইটেল বের করা

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

title = soup.find('title')
print(title.text)

এখানে কী হলো?

  • requests দিয়ে পেজ লোড করলাম
  • BeautifulSoup দিয়ে HTML পার্স করলাম
  • তারপর title ট্যাগ থেকে লেখা বের করলাম

🕹️ JavaScript-heavy সাইটে কী করবো?

সেখানে Selenium লাগবে, কারণ ঐ সাইটগুলোতে ডেটা ডায়নামিক্যালি লোড হয়। উদাহরণ:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

heading = driver.find_element(By.TAG_NAME, "h1")
print(heading.text)

driver.quit()

🕷️ বড় স্কেল প্রজেক্টে Scrapy ব্যবহার

Scrapy দিয়ে স্ক্র্যাপ করলে আমরা পাইপলাইনের মাধ্যমে ডেটা প্রসেস, ফাইল বা ডাটাবেজে স্টোর করতে পারি।

scrapy startproject myproject
cd myproject
scrapy genspider example example.com

তারপর স্পাইডার ফাইলে লিখে দাও:

import scrapy

class ExampleSpider(scrapy.Spider):
    name = "example"
    start_urls = ['https://example.com']

    def parse(self, response):
        title = response.css('title::text').get()
        yield {'title': title}

📚 গল্প দিয়ে ধরলে:

তুমি ধরো বইয়ের দোকানে গেলে, বই খুঁজে বের করে নিজের ব্যাগে রাখো। ওয়েব স্ক্র্যাপিংও তাই করে – ঠিক ডাটা খুঁজে নিয়ে তোমার ডেটাবেজে রাখে। BeautifulSoup একটু বইয়ের ইনডেক্স দেখে কাজ করে, Selenium হলো পুরো দোকানে হেঁটে দেখা, আর Scrapy হলো একসাথে অনেক লোক দিয়ে অনেক দোকান স্ক্যান করে ফেলা!


✅ শেষ কথা

  • শুরু করো BeautifulSoup দিয়ে
  • যদি সাইটটা জাভাস্ক্রিপ্ট দিয়ে বানানো হয়, তাহলে Selenium
  • আর যদি বড় প্রজেক্ট করো (বহু পেজ, অনেক ডেটা), তাহলে Scrapy

Articles

How can we help?