জেসুপ (JSoup) Java-তে HTML ডকুমেন্ট পার্সিং (HTML Document Parsing) করার জন্য একটি অত্যন্ত শক্তিশালী এবং জনপ্রিয় লাইব্রেরি। এটি HTML ডকুমেন্ট থেকে তথ্য এক্সট্র্যাক্ট করতে এবং DOM (Document Object Model) ম্যানিপুলেট করতে সহায়ক। HTML ডকুমেন্ট পার্সিংয়ের মাধ্যমে সহজেই HTML কোডে থাকা বিভিন্ন উপাদান, যেমন ট্যাগ, অ্যাট্রিবিউটস এবং কনটেন্ট এক্সট্র্যাক্ট করা যায়।
জেসুপ দিয়ে HTML ডকুমেন্ট পার্সিং এর প্রক্রিয়া
ডকুমেন্ট পার্সিং কী?
ডকুমেন্ট পার্সিং হল HTML বা XML ডকুমেন্টকে একটি ডাটা স্ট্রাকচার (যেমন: DOM) তে রূপান্তর করার প্রক্রিয়া। এর মাধ্যমে HTML কোডের বিভিন্ন উপাদান গুলি আলাদা করা যায় এবং প্রয়োজনীয় তথ্য পাওয়া যায়।
জেসুপ দিয়ে HTML ডকুমেন্ট পার্স করার পদ্ধতি
জেসুপ দিয়ে HTML ডকুমেন্ট পার্স করার প্রক্রিয়াটি বেশ সরল। নিচে একটি উদাহরণ দেওয়া হল যা HTML ডকুমেন্ট পার্স করে তার বিভিন্ন উপাদান থেকে ডাটা এক্সট্র্যাক্ট করে।
উদাহরণ কোড:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupExample {
public static void main(String[] args) throws Exception {
// একটি উদাহরণ HTML কোড
String html = "<html><head><title>Example Page</title></head><body><h1>Welcome to JSoup</h1><p>This is a simple paragraph.</p></body></html>";
// HTML ডকুমেন্ট পার্সিং
Document doc = Jsoup.parse(html);
// ডকুমেন্টের শিরোনাম (title) এক্সট্র্যাক্ট করা
String title = doc.title();
// <h1> ট্যাগ থেকে হেডিং এক্সট্র্যাক্ট করা
Element heading = doc.select("h1").first();
// <p> ট্যাগ থেকে প্যারাগ্রাফ এক্সট্র্যাক্ট করা
Element paragraph = doc.select("p").first();
// এক্সট্র্যাক্ট করা ডাটা প্রদর্শন
System.out.println("Title: " + title);
System.out.println("Heading: " + heading.text());
System.out.println("Paragraph: " + paragraph.text());
}
}
কোড ব্যাখ্যা:
- Jsoup.parse(html): এই মেথডটি HTML কোডকে একটি
Documentঅবজেক্টে রূপান্তর করে, যা পরবর্তীতে DOM ম্যানিপুলেশনের জন্য ব্যবহার করা যায়। - doc.title(): এটি HTML ডকুমেন্টের শিরোনাম (title) এক্সট্র্যাক্ট করে।
- doc.select("h1").first():
select()মেথডটি CSS সিলেক্টরের মাধ্যমে HTML ট্যাগ নির্বাচন করে। এখানে"h1"সিলেক্টর দিয়ে প্রথম<h1>ট্যাগটি পাওয়া যাচ্ছে। - doc.select("p").first(): একইভাবে,
select()মেথড ব্যবহার করে প্রথম<p>ট্যাগটি পাওয়া যাচ্ছে।
জেসুপ এর অন্যান্য পার্সিং সুবিধা
1. CSS সিলেক্টর ব্যবহার
জেসুপ CSS সিলেক্টর ব্যবহার করে HTML ডকুমেন্টের উপাদান নির্বাচন করতে সহায়ক। এটি খুবই শক্তিশালী, কারণ এটি CSS এর মত প্যাটার্ন ব্যবহার করে বিভিন্ন ট্যাগ, ক্লাস, আইডি ইত্যাদি সিলেক্ট করতে দেয়।
Element element = doc.select(".class-name").first(); // .class-name ক্লাস নির্বাচন
Element idElement = doc.select("#id-name").first(); // #id-name আইডি নির্বাচন
2. HTML অ্যাট্রিবিউট এক্সট্র্যাক্ট
আপনি HTML উপাদানের অ্যাট্রিবিউটস যেমন href, src ইত্যাদি এক্সট্র্যাক্ট করতে পারেন।
String link = doc.select("a").attr("href"); // <a> ট্যাগ থেকে href অ্যাট্রিবিউট
3. ডাইনামিক HTML পার্সিং
জেসুপ সহজেই ডাইনামিক HTML কন্টেন্ট পার্স করতে পারে, যেমন যখন JavaScript দ্বারা কন্টেন্ট পরিবর্তিত হয়। তবে, JSoup শুধুমাত্র স্ট্যাটিক HTML এর জন্য কার্যকরী, ডাইনামিক কন্টেন্টের জন্য Selenium বা অন্য কোনো টুল ব্যবহৃত হতে পারে।
সারাংশ
জেসুপ (JSoup) ব্যবহার করে HTML ডকুমেন্ট পার্সিং একটি সহজ এবং দ্রুত প্রক্রিয়া, যা ডেভেলপারদের HTML কোড থেকে তথ্য এক্সট্র্যাক্ট এবং ম্যানিপুলেট করতে সহায়তা করে। এর সহজ API এবং শক্তিশালী CSS সিলেক্টর পদ্ধতি HTML কন্টেন্টের মধ্যে থাকা উপাদানগুলো খুঁজে বের করতে অনেক সুবিধা প্রদান করে। HTML ডকুমেন্টের মধ্যে ট্যাগ, ক্লাস, আইডি এবং অ্যাট্রিবিউটস সহ অন্যান্য তথ্য এক্সট্র্যাক্ট করা সহজ হয়ে ওঠে।
জেসুপ (JSoup) ব্যবহার করে HTML ফাইল লোড করা খুবই সহজ। আপনি একটি লোকাল HTML ফাইল অথবা URL থেকে HTML ডকুমেন্ট লোড করতে পারেন। এতে ডকুমেন্টের সমস্ত HTML উপাদানগুলির সাথে কাজ করা সম্ভব হয়, যেমন ট্যাগ, অ্যাট্রিবিউটস এবং টেক্সট।
HTML ফাইল লোড করার পদ্ধতি
লোকাল HTML ফাইল লোড করা
যদি আপনার একটি লোকাল HTML ফাইল থাকে এবং সেটি জেসুপ দিয়ে লোড করতে চান, তাহলে Jsoup.parse(File in, String charsetName) মেথড ব্যবহার করতে হবে। এটি ফাইল থেকে HTML ডকুমেন্ট পার্স (parse) করে। এখানে File ক্লাস এবং charsetName আপনি যেভাবে ফাইলটি এনকোড করেছেন সেটি উল্লেখ করতে হবে।
নিচে একটি উদাহরণ দেখানো হল যেখানে একটি লোকাল HTML ফাইল লোড করা হচ্ছে:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.File;
public class JsoupLocalFileExample {
public static void main(String[] args) throws Exception {
// লোকাল HTML ফাইল
File input = new File("example.html");
// ফাইল লোড এবং পার্স করা
Document doc = Jsoup.parse(input, "UTF-8");
// HTML ডকুমেন্টের শিরোনাম প্রিন্ট করা
System.out.println("Title: " + doc.title());
}
}
এখানে example.html ফাইলটি লোকাল ডিরেক্টরিতে রাখা হয়েছে এবং সেটি লোড করা হচ্ছে। UTF-8 এনকোডিং ব্যবহৃত হয়েছে, তবে আপনি আপনার ফাইলের এনকোডিং অনুসারে এটি পরিবর্তন করতে পারেন।
URL থেকে HTML লোড করা
জেসুপ ব্যবহার করে যদি আপনি একটি URL থেকে HTML লোড করতে চান, তাহলে Jsoup.connect(String url).get() মেথড ব্যবহার করা যেতে পারে। এটি URL থেকে HTML ডকুমেন্ট লোড করে এবং পার্স করে।
নিচে একটি উদাহরণ দেওয়া হল যেখানে একটি URL থেকে HTML ডকুমেন্ট লোড করা হচ্ছে:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupUrlExample {
public static void main(String[] args) throws Exception {
// URL থেকে HTML লোড করা
Document doc = Jsoup.connect("https://www.example.com").get();
// HTML ডকুমেন্টের শিরোনাম প্রিন্ট করা
System.out.println("Title: " + doc.title());
}
}
এই কোডে Jsoup.connect() মেথডটি URL থেকে HTML ডকুমেন্ট সংগ্রহ করে, এবং get() মেথডের মাধ্যমে ডকুমেন্ট পার্স (parse) করা হয়।
সারাংশ
জেসুপ (JSoup) ব্যবহার করে HTML ফাইল লোড করা খুবই সহজ। আপনি যদি লোকাল HTML ফাইল লোড করতে চান, তাহলে Jsoup.parse() মেথড ব্যবহার করতে হবে, আর যদি URL থেকে HTML লোড করতে চান, তাহলে Jsoup.connect() মেথড ব্যবহার করতে হবে। এইভাবে আপনি HTML ডকুমেন্টের সমস্ত উপাদান নিয়ে কাজ করতে পারবেন এবং ডাটা এক্সট্র্যাক্ট করতে পারবেন।
জেসুপ (JSoup) ব্যবহার করে HTML ফাইল লোড করা অত্যন্ত সহজ। এটি আপনার লোকাল বা রিমোট HTML ফাইলকে পার্স (parse) করতে সাহায্য করে। HTML ফাইল লোড করার জন্য JSoup এর Jsoup.parse() বা Jsoup.parseFile() মেথড ব্যবহার করা হয়।
HTML ফাইল লোড করার জন্য Jsoup.parseFile() ব্যবহার
Jsoup.parseFile() মেথড HTML ফাইল লোড করতে ব্যবহৃত হয়, যা আপনার লোকাল ডিরেক্টরি থেকে HTML ফাইল রিড করে এবং এটি একটি Document অবজেক্টে পরিণত করে। এই মেথডটি HTML ফাইলের পাথ নেয় এবং সেটিকে পার্স করে HTML ডকুমেন্ট হিসেবে রিটার্ন করে।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.File;
import java.io.IOException;
public class JsoupExample {
public static void main(String[] args) {
try {
// লোকাল HTML ফাইল লোড করা
File inputFile = new File("path/to/your/file.html");
Document doc = Jsoup.parseFile(inputFile, "UTF-8");
// HTML ডকুমেন্টের শিরোনাম প্রিন্ট করা
System.out.println("Title: " + doc.title());
// HTML ডকুমেন্টের প্রথম h1 ট্যাগ প্রিন্ট করা
System.out.println("Heading: " + doc.select("h1").first().text());
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডে:
Jsoup.parseFile(inputFile, "UTF-8")মেথডটি লোকাল HTML ফাইল পার্স করে।- তারপর
doc.title()এবংdoc.select("h1").first()ব্যবহার করে HTML ডকুমেন্টের শিরোনাম এবং প্রথম h1 ট্যাগের কনটেন্ট এক্সট্র্যাক্ট করা হয়েছে।
HTML ফাইল লোড করার জন্য Jsoup.parse() ব্যবহার
Jsoup.parse() মেথডটি সাধারণত HTML কনটেন্ট স্ট্রিং পার্স করতে ব্যবহৃত হয়, তবে এটি ফাইল থেকেও HTML ডেটা রিড করতে পারে যদি আপনি ফাইলের কনটেন্টকে স্ট্রিং হিসেবে লোড করেন।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
public class JsoupExample {
public static void main(String[] args) {
try {
// HTML ফাইলের কনটেন্ট স্ট্রিং হিসেবে রিড করা
File inputFile = new File("path/to/your/file.html");
String htmlContent = new String(Files.readAllBytes(inputFile.toPath()), "UTF-8");
// HTML কনটেন্ট পার্স করা
Document doc = Jsoup.parse(htmlContent);
// HTML ডকুমেন্টের শিরোনাম প্রিন্ট করা
System.out.println("Title: " + doc.title());
// HTML ডকুমেন্টের প্রথম h1 ট্যাগ প্রিন্ট করা
System.out.println("Heading: " + doc.select("h1").first().text());
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
- ফাইলের কনটেন্ট
Files.readAllBytes()মেথড দিয়ে স্ট্রিং আকারে রিড করা হয়েছে। - তারপর
Jsoup.parse()মেথড দিয়ে HTML কনটেন্ট পার্স করা হয়েছে।
সারাংশ
JSoup ব্যবহার করে HTML ফাইল লোড করা খুবই সহজ এবং সরল। Jsoup.parseFile() মেথড HTML ফাইল সরাসরি লোড করে পার্স করতে সাহায্য করে, আর Jsoup.parse() মেথড HTML কনটেন্ট স্ট্রিং আকারে প্রক্রিয়া করতে ব্যবহৃত হয়। এই দুইটি পদ্ধতি আপনার লোকাল বা রিমোট HTML ডকুমেন্ট থেকে ডেটা এক্সট্র্যাক্ট করার জন্য কার্যকর।
জেসুপ (JSoup) ব্যবহার করে আপনি একটি String থেকে HTML লোড করতে পারেন এবং সেটি পার্স (parse) করে ডকুমেন্ট অবজেক্ট মডেল (DOM) তৈরি করতে পারেন। এটি ওয়েব স্ক্র্যাপিং বা HTML ডকুমেন্ট ম্যানিপুলেশন করার জন্য উপকারী। Jsoup.parse() মেথড ব্যবহার করে HTML string থেকে ডকুমেন্ট তৈরি করা হয় এবং সেই ডকুমেন্টের উপাদানগুলির সাথে কাজ করা সম্ভব হয়।
উদাহরণ: String থেকে HTML লোড করা
নিচে একটি উদাহরণ দেওয়া হল যেখানে String থেকে HTML লোড করা হয়েছে এবং সেই HTML এর বিভিন্ন উপাদান এক্সট্র্যাক্ট করা হয়েছে:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupExample {
public static void main(String[] args) throws Exception {
// HTML কোড একটি স্ট্রিং (String) আকারে
String html = "<html><head><title>JSoup Example</title></head><body><h1>Welcome to JSoup</h1><p>This is a paragraph.</p></body></html>";
// Jsoup.parse() মেথড ব্যবহার করে String থেকে HTML লোড করা
Document doc = Jsoup.parse(html);
// HTML ডকুমেন্টের শিরোনাম এবং প্যারাগ্রাফ এক্সট্র্যাক্ট করা
String title = doc.title();
Element heading = doc.select("h1").first();
Element paragraph = doc.select("p").first();
System.out.println("Title: " + title); // JSoup Example
System.out.println("Heading: " + heading.text()); // Welcome to JSoup
System.out.println("Paragraph: " + paragraph.text()); // This is a paragraph.
}
}
ব্যাখ্যা
- Jsoup.parse(): এটি একটি স্ট্যাটিক মেথড যা HTML কোডকে একটি
Stringআকারে গ্রহণ করে এবং সেটি পার্স (parse) করে একটিDocumentঅবজেক্ট তৈরি করে। - title(): এটি ডকুমেন্টের শিরোনাম (title) ফেরত দেয়।
- select(): এই মেথডটি CSS সিলেক্টর ব্যবহার করে HTML উপাদান (elements) নির্বাচন করে। উদাহরণস্বরূপ,
h1সিলেক্টর ব্যবহার করে আমরা<h1>ট্যাগের টেক্সট বের করতে পারি।
সারাংশ
জেসুপ (JSoup) এর মাধ্যমে একটি String থেকে HTML লোড করা খুব সহজ এবং কার্যকর। Jsoup.parse() মেথড ব্যবহার করে আপনি HTML স্ট্রিংকে পার্স (parse) করে ডকুমেন্ট অবজেক্ট তৈরি করতে পারেন এবং পরে সেই ডকুমেন্টের উপাদানগুলির সাথে কাজ করতে পারেন, যেমন শিরোনাম, প্যারাগ্রাফ এবং অন্যান্য HTML ট্যাগের তথ্য এক্সট্র্যাক্ট করা।
জেসুপ (JSoup) লাইব্রেরি HTML ফাইল পার্সিং-এর জন্য বিভিন্ন কার্যকরী মেথড সরবরাহ করে, যা ডেভেলপারদের HTML ডকুমেন্টের মধ্যে থাকা তথ্য সহজে এক্সট্র্যাক্ট করতে এবং ম্যানিপুলেট করতে সাহায্য করে। নিচে কিছু গুরুত্বপূর্ণ মেথড এবং তাদের ব্যবহার নিয়ে আলোচনা করা হবে।
HTML ফাইল পার্সিং এর জন্য প্রধান মেথড
Jsoup.parse()
এটি HTML স্ট্রিংকে ডকুমেন্ট অবজেক্ট মডেলে (DOM) রূপান্তরিত করার জন্য ব্যবহৃত হয়। সাধারণত এটি HTML স্ট্রিং বা URL থেকে ডকুমেন্ট পার্স করতে ব্যবহার করা হয়।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) throws Exception {
String html = "<html><head><title>Example</title></head><body><h1>Welcome to JSoup</h1></body></html>";
// HTML স্ট্রিং পার্স করা
Document doc = Jsoup.parse(html);
System.out.println(doc.title()); // "Example"
}
}
Jsoup.parse(File in)
এই মেথডটি একটি লোকাল HTML ফাইলকে ডকুমেন্টে রূপান্তরিত করে। এটি ফাইল সিস্টেম থেকে HTML ফাইল পার্স করতে ব্যবহৃত হয়।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.File;
public class JsoupExample {
public static void main(String[] args) throws Exception {
File input = new File("path/to/file.html");
// HTML ফাইল পার্স করা
Document doc = Jsoup.parse(input, "UTF-8");
System.out.println(doc.title());
}
}
Jsoup.connect(String url)
এটি একটি URL থেকে HTML ডকুমেন্ট পার্স করার জন্য ব্যবহৃত হয়। এই মেথডটি ওয়েবপেজ থেকে ডাটা এক্সট্র্যাক্ট করার সময় খুবই কার্যকরী।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) throws Exception {
String url = "https://example.com";
// URL থেকে HTML ডকুমেন্ট পার্স করা
Document doc = Jsoup.connect(url).get();
System.out.println(doc.title());
}
}
HTML ফাইল থেকে ডেটা এক্সট্র্যাক্ট করা
doc.select(String query)
এটি CSS সিলেক্টর ব্যবহার করে ডকুমেন্টের নির্দিষ্ট অংশ সিলেক্ট করতে ব্যবহৃত হয়। এর মাধ্যমে ট্যাগ, ক্লাস, আইডি বা অ্যাট্রিবিউট অনুসারে HTML এলিমেন্ট সিলেক্ট করা যায়।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupExample {
public static void main(String[] args) throws Exception {
String html = "<html><body><h1 class='header'>Welcome to JSoup</h1></body></html>";
// CSS সিলেক্টর ব্যবহার করে এলিমেন্ট সিলেক্ট করা
Document doc = Jsoup.parse(html);
Element heading = doc.select("h1.header").first();
System.out.println(heading.text()); // "Welcome to JSoup"
}
}
doc.getElementById(String id)
এটি HTML ডকুমেন্টের একটি নির্দিষ্ট আইডি দ্বারা উপাদান সিলেক্ট করার জন্য ব্যবহৃত হয়।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupExample {
public static void main(String[] args) throws Exception {
String html = "<html><body><h1 id='mainHeader'>Welcome to JSoup</h1></body></html>";
// আইডি ব্যবহার করে এলিমেন্ট সিলেক্ট করা
Document doc = Jsoup.parse(html);
Element heading = doc.getElementById("mainHeader");
System.out.println(heading.text()); // "Welcome to JSoup"
}
}
doc.select("tag")
এটি HTML ট্যাগের মাধ্যমে একাধিক এলিমেন্ট সিলেক্ট করতে ব্যবহৃত হয়।
উদাহরণ:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import java.util.List;
public class JsoupExample {
public static void main(String[] args) throws Exception {
String html = "<html><body><p>First Paragraph</p><p>Second Paragraph</p></body></html>";
// প্যারাগ্রাফ ট্যাগ সিলেক্ট করা
Document doc = Jsoup.parse(html);
List<Element> paragraphs = doc.select("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
সারাংশ
জেসুপ (JSoup) Java-তে HTML ফাইল পার্সিং-এর জন্য শক্তিশালী এবং কার্যকরী মেথড সরবরাহ করে। Jsoup.parse(), Jsoup.parse(File in), এবং Jsoup.connect(String url) এর মাধ্যমে HTML ডকুমেন্ট পার্স করা সম্ভব। এছাড়াও, CSS সিলেক্টর এবং অন্যান্য মেথড যেমন select(), getElementById() ব্যবহার করে HTML ডকুমেন্টের বিভিন্ন উপাদানকে সহজে এক্সট্র্যাক্ট করা যায়।
Read more