jsoup: Java HTML পার্সার
Java-তে jQuery-এর মতো সরলতায় HTML স্ক্র্যাপ, ক্লিন এবং ম্যানিপুলেট করুন
jsoup কি?
jsoup একটি লাইটওয়েট কিন্তু শক্তিশালী Java লাইব্রেরি যা বাস্তব-বিশ্বের HTML নিয়ে কাজ করার জন্য ডিজাইন করা হয়েছে। এটি URL, ফাইল বা স্ট্রিং থেকে HTML পার্স করার, DOM ট্রাভার্সাল, CSS সিলেক্টর এবং আধুনিক HTML5 পদ্ধতি ব্যবহার করে ডেটা এক্সট্র্যাক্ট এবং ম্যানিপুলেট করার জন্য একটি সিম্পল API প্রদান করে। ওয়েব স্ক্র্যাপিং, ডেটা এক্সট্র্যাকশন এবং HTML স্যানিটাইজেশনের জন্য আদর্শ, jsoup ব্রাউজারের মতো করেই ভুল ফরম্যাটেড মার্কআপ হ্যান্ডেল করে।
রaw regex পদ্ধতির বিপরীতে, jsoup jQuery-অনুপ্রাণিত মেথড সহ একটি ক্লিন অবজেক্ট মডেল অফার করে, ফর্ম সাবমিশন, অ্যাট্রিবিউট মডিফিকেশন এবং টেক্সট এক্সট্র্যাকশনের মতো টাস্কগুলো সহজ করে। জিরো ডিপেন্ডেন্সি এবং MIT লাইসেন্সিং সহ, এটি Java ডেভেলপারদের জন্য নির্ভরযোগ্য HTML প্রসেসিংয়ের প্রথম পছন্দ।
jsoup-এর প্রধান সুবিধাগুলো:
- বাস্তব-বিশ্বের HTML হ্যান্ডলিং: ব্রাউজারের মতো অগোছালো HTML পার্স করে
- jQuery-স্টাইল সিনট্যাক্স: পরিচিত CSS সিলেক্টর (যেমন
doc.select("div.content")
) - স্ক্র্যাপিং-ফ্রেন্ডলি: রিডাইরেক্ট ফলো করে, কুকি হ্যান্ডেল করে এবং ফর্ম সাবমিট করে
- ক্রস-প্ল্যাটফর্ম: নেটিভ ডিপেন্ডেন্সি ছাড়া Pure Java
- সিকিউরিটি: বিল্ট-ইন XSS প্রিভেনশন এবং HTML স্যানিটাইজেশন
ডেটা মাইনিং, ওয়েব অটোমেশন এবং কন্টেন্ট অ্যানালাইসিসের জন্য পারফেক্ট।
কেন jsoup বেছে নেবেন?
- সরলতা: CSS সিলেক্টর সাপোর্ট সহ ইন্টুইটিভ API
- নির্ভরযোগ্যতা: 2009 সাল থেকে সক্রিয়ভাবে মেইনটেইন করা
- পারফরম্যান্স: স্ট্রিমিং এবং বড় ডকুমেন্টের জন্য অপ্টিমাইজড
- ফ্লেক্সিবিলিটি: ফ্র্যাগমেন্ট, ফাইল বা লাইভ URL-এর সাথে কাজ করে
- ক্লিন আউটপুট: HTML কে প্রিটি-প্রিন্ট এবং রিফরম্যাট করে
ইন্সটলেশন
Maven বা Gradle এর মাধ্যমে jsoup যোগ করুন:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
সিস্টেম রিকোয়ারমেন্ট: Java 8+
কোড উদাহরণ
jsoup-এর ব্যবহারিক উদাহরণ:
উদাহরণ ১: স্ট্রিং থেকে ডকুমেন্ট পার্স করুন
যদি আপনার Java স্ট্রিংয়ে HTML থাকে এবং আপনি এর কন্টেন্ট পেতে বা মডিফাই করতে চান, jsoup মাত্র কয়েক লাইন কোডে এটি করতে পারে।
parse(String html, String baseUri) মেথড ইনপুট HTML কে একটি নতুন ডকুমেন্টে কনভার্ট করে। baseUri প্যারামিটার রিলেটিভ URL গুলোকে অ্যাবসলিউট URL এ রিজল্ভ করতে সাহায্য করে এবং ডকুমেন্ট যেখান থেকে রিট্রিভ করা হয়েছে সেই URL-এর সাথে মিলে যাওয়া উচিত। যদি এটি অপ্রাসঙ্গিক হয় বা HTML-এ
উদাহরণ ২: এলিমেন্ট খুঁজতে CSS সিলেক্টর ব্যবহার করুন
আপনি CSS সিলেক্টর ব্যবহার করে এলিমেন্ট খুঁজতে বা ম্যানিপুলেট করতে চান। সরাসরি একটি HTML স্ট্রিং পার্স এবং ম্যানিপুলেট করুন:
উদাহরণ ৩: একটি এলিমেন্টের HTML মডিফাই করুন
আপনার একটি এলিমেন্টের HTML মডিফাই করার প্রয়োজন। নিচের স্যাম্পল কোডে দেখানো হয়েছে এমন Element-এর HTML সেটার মেথড ব্যবহার করুন।
এডভান্সড ফিচারস
jsoup প্রফেশনাল HTML প্রসেসিং সাপোর্ট করে:
- ফর্ম হ্যান্ডলিং: POST ডেটা সাবমিট করুন:
ফর্ম সাবমিশন
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- প্রক্সি সাপোর্ট: প্রক্সির মাধ্যমে স্ক্র্যাপ করুন:
প্রক্সি কনফিগারেশন
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- DOM ম্যানিপুলেশন: HTML স্ট্রাকচার মডিফাই করুন:
DOM পরিবর্তন
doc.select("div.ads").remove(); // সব এড রিমুভ করুন doc.select("h1").attr("class", "header"); // CSS ক্লাস যোগ করুন
jsoup বনাম HTMLUnit
প্রধান পার্থক্য:
- ফোকাস: jsoup স্ট্যাটিক HTML পার্স করে; HTMLUnit ব্রাউজার সিমুলেট করে (JavaScript এক্সিকিউশন)
- স্পিড: খাঁটি HTML পার্সিং-এ jsoup দ্রুততর
- API স্টাইল: jsoup CSS সিলেক্টর ব্যবহার করে; HTMLUnit Selenium-কে মিমিক করে
- ইউস কেস: jsoup স্ক্র্যাপিং-এর জন্য; HTMLUnit ডাইনামিক পেজ টেস্টিং-এর জন্য
- ডিপেন্ডেন্সি: jsoup-এর কোন ডিপেন্ডেন্সি নেই; HTMLUnit-এর অতিরিক্ত লাইব্রেরি প্রয়োজন
উপসংহার
jsoup Java ডেভেলপারদের জন্য HTML টুলকিটের চূড়ান্ত সমাধান। নিম্নলিখিত ক্ষেত্রে আদর্শ:
- ওয়েব স্ক্র্যাপিং: যেকোনো ওয়েবসাইট থেকে ডেটা এক্সট্র্যাক্ট করুন
- ডেটা ক্লিনিং: HTML স্যানিটাইজ এবং নরমালাইজ করুন
- কন্টেন্ট অ্যানালাইসিস: RSS ফিড বা ওয়েব আর্কাইভ পার্স করুন
- টেস্টিং: অ্যাপ্লিকেশনে HTML স্ট্রাকচার ভেরিফাই করুন
MIT লাইসেন্স এবং ইন্টুইটিভ API সহ, Java-ভিত্তিক HTML প্রসেসিং-এর জন্য jsoup সেরা পছন্দ।
Similar Products
- pdf-lib | জাভাস্ক্রিপ্ট পিডিএফ এডিটর | পিডিএফ তৈরি করুন এবং পরিবর্তন করুন
- PDFKit | ডায়নামিক জাভাস্ক্রিপ্ট পিডিএফ তৈরি লাইব্রেরি
- pdfmake | ঘোষণামূলক পিডিএফ তৈরির জন্য জাভাস্ক্রিপ্ট লাইব্রেরি
- python-docx | Python DOCX Editor API | DOCX ফাইল তৈরি এবং পরিবর্তন করুন
- Apache PDFBox API for Java – PDF টেক্সট এক্সট্রাকশন এবং ম্যানিপুলেশন