জেসুপ (JSoup) ব্যবহার করে ওয়েব স্ক্র্যাপিং একটি জনপ্রিয় প্রক্রিয়া, যেখানে আপনি ওয়েব পেজ থেকে ডাটা এক্সট্র্যাক্ট করেন। ওয়েব স্ক্র্যাপিং প্রকল্পগুলো সাধারণত ডেটা সংগ্রহের জন্য ব্যবহৃত হয়, যেমন প্রোডাক্টের দাম, খবর, বা কোনো নির্দিষ্ট সাইটের অন্যান্য তথ্য। এখানে আমরা একটি বাস্তব জীবন উদাহরণ দেখবো, যেখানে JSoup দিয়ে একটি ওয়েবসাইট থেকে প্রোডাক্টের ডাটা স্ক্র্যাপ করা হবে।
প্রকল্পের উদ্দেশ্য
ধরা যাক, আমাদের উদ্দেশ্য হলো একটি ই-কমার্স ওয়েবসাইট থেকে প্রোডাক্টের নাম, দাম, এবং প্রোডাক্টের বিবরণ এক্সট্র্যাক্ট করা। আমরা এই তথ্যগুলো একটি CSV ফাইলে সেভ করবো।
উদাহরণ ওয়েবসাইট: "ExampleStore.com"
ধরা যাক, "ExampleStore.com" ওয়েবসাইটে বিভিন্ন প্রোডাক্টের তথ্য রয়েছে এবং আমরা তাদের প্রোডাক্ট নাম, দাম এবং বিবরণ এক্সট্র্যাক্ট করতে চাই।
প্রোজেক্টের ধাপসমূহ
১. ওয়েবসাইট থেকে HTML ডাটা সংগ্রহ
প্রথমে আমরা JSoup ব্যবহার করে ওয়েবসাইটের HTML ডকুমেন্ট সংগ্রহ করব। এর পরে, JSoup এর মাধ্যমে প্রোডাক্টের নাম, দাম, এবং বিবরণ এক্সট্র্যাক্ট করব।
২. প্রোডাক্টের তথ্য সংগ্রহ
আমরা প্রোডাক্টের তথ্য সংগ্রহ করার জন্য সঠিক সিলেক্টর ব্যবহার করবো, যেমন div.product-name, span.product-price, এবং div.product-description।
৩. CSV ফাইলে ডাটা সেভ করা
এক্সট্র্যাক্ট করা ডাটাগুলো একটি CSV ফাইলে সেভ করা হবে।
বাস্তব উদাহরণ: ওয়েব স্ক্র্যাপিং কোড
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WebScrapingExample {
public static void main(String[] args) throws Exception {
// ওয়েব পেজ থেকে HTML ডকুমেন্ট ফেচ করা
String url = "https://www.examplestore.com/products";
Document doc = Jsoup.connect(url).get();
// প্রোডাক্টের সমস্ত ইনফরমেশন এক্সট্র্যাক্ট করা
Elements products = doc.select("div.product");
// CSV ফাইল তৈরি
BufferedWriter writer = new BufferedWriter(new FileWriter("products.csv"));
writer.write("Product Name, Price, Description\n");
// প্রতিটি প্রোডাক্টের তথ্য বের করা
for (Element product : products) {
String productName = product.select("div.product-name").text();
String price = product.select("span.product-price").text();
String description = product.select("div.product-description").text();
// এক্সট্র্যাক্ট করা তথ্য CSV ফাইলে লেখা
writer.write(productName + ", " + price + ", " + description + "\n");
}
// ফাইল বন্ধ করা
writer.close();
System.out.println("Data scraping completed and saved to products.csv");
}
}
কোড বিশ্লেষণ:
- HTML ডকুমেন্ট ফেচ করা:
Jsoup.connect(url).get();এর মাধ্যমে ওয়েব পেজের HTML ডকুমেন্ট সংগ্রহ করা হয়েছে।
- প্রোডাক্টের তথ্য এক্সট্র্যাক্ট করা:
doc.select("div.product");এর মাধ্যমে সমস্ত প্রোডাক্টের ডাটা এক্সট্র্যাক্ট করা হয়েছে।- এরপর,
select()মেথড ব্যবহার করে প্রতিটি প্রোডাক্টের নাম, দাম এবং বিবরণ এক্সট্র্যাক্ট করা হয়েছে।
- CSV ফাইলে ডাটা সেভ করা:
BufferedWriterব্যবহার করে প্রাপ্ত ডাটা একটি CSV ফাইলে সেভ করা হয়েছে।
- ফাইল ক্লোজ করা:
writer.close();দিয়ে ফাইলটি বন্ধ করা হয়েছে।
আউটপুট: CSV ফাইল
এই কোড চালানোর পর products.csv নামক একটি ফাইল তৈরি হবে যা দেখতে এরকম হতে পারে:
Product Name, Price, Description
Product 1, $99.99, This is a description of product 1.
Product 2, $149.99, This is a description of product 2.
Product 3, $79.99, This is a description of product 3.
...
কিছু গুরুত্বপূর্ণ বিষয়
- HTML সিলেক্টর:
div.product,div.product-name,span.product-priceইত্যাদি সিলেক্টরগুলি সম্পূর্ণভাবে ওয়েবসাইটের HTML স্ট্রাকচার অনুসারে পরিবর্তিত হতে পারে, তাই সিলেক্টরগুলি আপনার ওয়েবসাইটের অনুযায়ী ঠিক করতে হবে।
- অবৈধ ওয়েব স্ক্র্যাপিং:
- অনেক ওয়েবসাইটে স্ক্র্যাপিং নিষিদ্ধ হতে পারে। স্ক্র্যাপিং করার আগে ওয়েবসাইটের টার্মস অফ সার্ভিস চেক করা জরুরি। আপনার স্ক্র্যাপিং কোড যেন ওয়েবসাইটের সার্ভিসের সাথে বিরোধী না হয়, তা নিশ্চিত করতে হবে।
- ডাটা ক্লিনিং:
- এক্সট্র্যাক্ট করা ডাটাতে মাঝে মাঝে অপ্রয়োজনীয় স্পেস বা অস্বচ্ছ টেক্সট থাকতে পারে। এসব ডাটা সঠিকভাবে ক্লিন করা প্রয়োজন।
সারাংশ
JSoup দিয়ে ওয়েব স্ক্র্যাপিং একটি শক্তিশালী টুল হতে পারে যখন আপনি কোনো ওয়েবসাইট থেকে নির্দিষ্ট তথ্য এক্সট্র্যাক্ট করতে চান। বাস্তব জীবনে ওয়েব স্ক্র্যাপিংয়ের প্রকল্পে JSoup ব্যবহার করে HTML ডকুমেন্ট পার্স করা, ডাটা এক্সট্র্যাক্ট করা এবং CSV বা অন্য কোনো ফর্ম্যাটে সেভ করা সম্ভব। উপরের উদাহরণটি একটি সাধারণ ওয়েব স্ক্র্যাপিং প্রকল্পের ধারণা দেয় যা আপনাকে আপনার প্রকল্পে সহায়তা করতে পারে।
Read more