ওয়েব স্ক্র্যাপিং প্রোজেক্ট হল একটি প্রকল্প যেখানে Python এর লাইব্রেরি যেমন BeautifulSoup, Requests, এবং কখনো Selenium ব্যবহার করে কোনো ওয়েবসাইট থেকে ডেটা সংগ্রহ করা হয়। নিচে একটি উদাহরণসহ কয়েকটি সাধারণ ওয়েব স্ক্র্যাপিং প্রোজেক্টের আইডিয়া তুলে ধরা হলো।
১. প্রজেক্ট: নিউজ হেডলাইন স্ক্র্যাপার
বর্ণনা: এই প্রোজেক্টে জনপ্রিয় কোনো নিউজ ওয়েবসাইট (যেমন https://www.bbc.com/) থেকে সাম্প্রতিক সংবাদ শিরোনাম এবং সংশ্লিষ্ট লিংক স্ক্র্যাপ করা হবে। BeautifulSoup এবং Requests ব্যবহার করে ওয়েব পেজ থেকে এই তথ্যগুলো সংগ্রহ করা হবে।
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা
python
Copy code
import requests
from bs4 import BeautifulSoup
ধাপ ২: ওয়েবসাইট থেকে HTML ডেটা সংগ্রহ করা
# ওয়েবসাইটের URL
url = 'https://www.bbc.com/'
# Requests দিয়ে HTML পেজ লোড করা
response = requests.get(url)
# যদি পেজ সফলভাবে লোড হয় (status code 200)
if response.status_code == 200:
html_content = response.content
ধাপ ৩: BeautifulSoup দিয়ে HTML পার্সিং করা
# BeautifulSoup দিয়ে HTML ডেটা পার্স করা
soup = BeautifulSoup(html_content, 'html.parser')
ধাপ ৪: হেডলাইন এবং লিংক এক্সট্রাক্ট করা
ধরুন, শিরোনামগুলো h3 ট্যাগে এবং প্রতিটি শিরোনামের লিংক a ট্যাগের মধ্যে রয়েছে। নিচের কোডে আমরা এগুলো এক্সট্রাক্ট করব।
# শিরোনাম এবং লিংক এক্সট্রাক্ট করা
headlines = []
for item in soup.find_all('h3'):
headline_text = item.get_text(strip=True)
headline_link = item.find('a')['href'] if item.find('a') else None
if headline_text and headline_link:
full_link = f"https://www.bbc.com{headline_link}" if headline_link.startswith("/") else headline_link
headlines.append({"headline": headline_text, "link": full_link})
# শিরোনাম এবং লিংক প্রিন্ট করা
for index, headline in enumerate(headlines, 1):
print(f"{index}. {headline['headline']}\nLink: {headline['link']}\n")
পূর্ণ কোড একসাথে
import requests
from bs4 import BeautifulSoup
url = 'https://www.bbc.com/'
# ওয়েব পেজ থেকে HTML সংগ্রহ
response = requests.get(url)
if response.status_code == 200:
html_content = response.content
# BeautifulSoup দিয়ে HTML পার্স
soup = BeautifulSoup(html_content, 'html.parser')
headlines = []
# হেডলাইন এবং লিংক এক্সট্রাক্ট
for item in soup.find_all('h3'):
headline_text = item.get_text(strip=True)
headline_link = item.find('a')['href'] if item.find('a') else None
if headline_text and headline_link:
full_link = f"https://www.bbc.com{headline_link}" if headline_link.startswith("/") else headline_link
headlines.append({"headline": headline_text, "link": full_link})
# প্রিন্ট করা
for index, headline in enumerate(headlines, 1):
print(f"{index}. {headline['headline']}\nLink: {headline['link']}\n")
অন্যান্য প্রজেক্ট আইডিয়া
২. ই-কমার্স ওয়েবসাইট থেকে প্রোডাক্ট ডেটা স্ক্র্যাপিং
বর্ণনা: ই-কমার্স সাইট (যেমন, Amazon বা Flipkart) থেকে নির্দিষ্ট প্রোডাক্টের নাম, দাম, রেটিং এবং স্টক স্ট্যাটাস স্ক্র্যাপ করা।
- লাইব্রেরি: Requests, BeautifulSoup
- উদ্দেশ্য: প্রোডাক্টের তুলনামূলক বিশ্লেষণ করা এবং মূল্য পরিবর্তন পর্যবেক্ষণ করা।
৩. আবহাওয়া তথ্য স্ক্র্যাপার
বর্ণনা: কোনো নির্দিষ্ট শহরের আবহাওয়া তথ্য যেমন তাপমাত্রা, বাতাসের গতি এবং আর্দ্রতা স্ক্র্যাপ করা।
- ওয়েবসাইট: https://www.weather.com/
- লাইব্রেরি: Requests, BeautifulSoup
- উদ্দেশ্য: দৈনিক আবহাওয়ার তথ্য সংগ্রহ করে রিপোর্ট তৈরি করা।
৪. জব পোর্টাল স্ক্র্যাপার
বর্ণনা: LinkedIn বা Indeed এর মতো জব পোর্টাল থেকে নির্দিষ্ট চাকরি সম্পর্কিত তথ্য যেমন জব টাইটেল, কোম্পানি নাম, অবস্থান এবং বেতন স্ক্র্যাপ করা।
- লাইব্রেরি: Selenium (কারণ এই ওয়েবসাইটগুলোতে সাধারণত JavaScript ব্যবহৃত হয়)
- উদ্দেশ্য: চাকরির বাজার সম্পর্কে ধারণা পাওয়া এবং নির্দিষ্ট পজিশনের জন্য বিভিন্ন তথ্য সংগ্রহ।
৫. ক্রিপ্টোকারেন্সি মূল্য ট্র্যাকার
বর্ণনা: ক্রিপ্টোকারেন্সি ওয়েবসাইট (যেমন CoinMarketCap) থেকে বিভিন্ন ক্রিপ্টোকারেন্সির মূল্য, পরিবর্তন এবং মার্কেট ক্যাপ স্ক্র্যাপ করা।
- লাইব্রেরি: Requests, BeautifulSoup
- উদ্দেশ্য: ক্রিপ্টোকারেন্সির মার্কেট এনালাইসিস এবং রিয়েল-টাইম প্রাইস ট্র্যাকিং।
৬. স্টক মার্কেট স্ক্র্যাপার
বর্ণনা: Yahoo Finance বা Google Finance থেকে বিভিন্ন কোম্পানির স্টক প্রাইস, পরিবর্তন, এবং ৫২ সপ্তাহের সর্বোচ্চ ও সর্বনিম্ন মূল্য স্ক্র্যাপ করা।
- লাইব্রেরি: Requests, BeautifulSoup, অথবা
yfinanceAPI - উদ্দেশ্য: বিনিয়োগকারীদের জন্য স্টক বাজারের অবস্থা বিশ্লেষণ করা।
৭. বইয়ের রেটিং এবং রিভিউ স্ক্র্যাপার
বর্ণনা: Goodreads থেকে বইয়ের নাম, লেখক, রেটিং এবং রিভিউ স্ক্র্যাপ করা।
- লাইব্রেরি: Requests, BeautifulSoup
- উদ্দেশ্য: বিভিন্ন বই সম্পর্কে ধারণা নেওয়া এবং পাঠকদের পরামর্শ দেওয়া।
৮. পিডিএফ জেনারেটর দিয়ে নিউজলেটার তৈরি
বর্ণনা: নির্দিষ্ট ওয়েবসাইট থেকে জনপ্রিয় আর্টিকেল স্ক্র্যাপ করে সেগুলোকে PDF আকারে নিউজলেটারে পরিণত করা।
- লাইব্রেরি: Requests, BeautifulSoup, ReportLab
- উদ্দেশ্য: সাপ্তাহিক বা মাসিক একটি নিউজলেটার তৈরি করা।
৯. ইন্সটাগ্রাম প্রোফাইল ডেটা স্ক্র্যাপার
বর্ণনা: একটি নির্দিষ্ট ইন্সটাগ্রাম প্রোফাইল থেকে ফলোয়ার সংখ্যা, পোস্ট সংখ্যা এবং প্রোফাইল বিবরণ স্ক্র্যাপ করা। (ইন্সটাগ্রামের প্রাইভেসি পলিসি মেনে চলতে হবে)
- লাইব্রেরি: Selenium
- উদ্দেশ্য: সোশ্যাল মিডিয়া প্রোফাইল বিশ্লেষণ।
১০. ট্রেন বা বাসের সময়সূচি স্ক্র্যাপার
বর্ণনা: কোনো ট্রেন বা বাস ওয়েবসাইট থেকে নির্দিষ্ট গন্তব্যে পৌঁছানোর জন্য ট্রেন/বাসের সময়সূচি স্ক্র্যাপ করা।
- লাইব্রেরি: Requests, BeautifulSoup
- উদ্দেশ্য: যাত্রীদের জন্য ট্রেন বা বাসের সময়সূচি বিশ্লেষণ।
উপসংহার
ওয়েব স্ক্র্যাপিং প্রোজেক্টগুলো ডেটা সংগ্রহের জন্য একটি কার্যকরী পদ্ধতি এবং Python-এ BeautifulSoup, Requests, এবং Selenium এর মতো টুলের মাধ্যমে সহজে করা যায়। তবে প্রোজেক্ট করার সময় ওয়েবসাইটের টার্মস অফ সার্ভিস এবং প্রাইভেসি পলিসি মেনে চলা গুরুত্বপূর্ণ।
Read more