jsoup: تجزیهگر HTML برای جاوا
استخراج، پاکسازی و دستکاری HTML با سادگی شبیه به jQuery در جاوا
jsoup چیست؟
jsoup یک کتابخانه سبکوزن اما قدرتمند جاوا است که برای کار با HTML واقعی طراحی شده است. این کتابخانه یک API ساده برای تجزیه HTML از URLها، فایلها یا رشتهها، استخراج و دستکاری دادهها با استفاده از پیمایش DOM، انتخابگرهای CSS و روشهای مدرن HTML5 ارائه میدهد. ایدهآل برای استخراج از وب، استخراج داده و پاکسازی HTML، jsoup به زیبایی با نشانهگذاری نادرست برخورد میکند - دقیقاً مانند یک مرورگر.
برخلاف روشهای مبتنی بر regex، jsoup یک مدل شیءگرای تمیز با متدهای الهامگرفته از jQuery ارائه میدهد که کارهایی مانند ارسال فرم، تغییر ویژگیها و استخراج متن را ساده میکند. بدون وابستگی و با مجوز MIT، این کتابخانه مورد علاقه توسعهدهندگان جاوا است که به پردازش قابل اعتماد HTML نیاز دارند.
مزایای کلیدی jsoup:
- کار با HTML واقعی: HTML نامرتب را مانند مرورگرها تجزیه میکند
- نحو شبیه به jQuery: انتخابگرهای CSS آشنا (مثلاً
doc.select("div.content")
) - مناسب برای استخراج: انتقالها را دنبال میکند، کوکیها را مدیریت میکند و فرمها را ارسال میکند
- چندسکویی: جاوا خالص بدون وابستگیهای بومی
- امنیت: محافظت داخلی در برابر XSS و پاکسازی HTML
عالی برای دادهکاوی، خودکارسازی وب و تحلیل محتوا.
چرا jsoup را انتخاب کنیم؟
- سادگی: API شهودی با پشتیبانی از انتخابگرهای CSS
- قابلیت اطمینان: از سال 2009 بهطور فعال نگهداری میشود
- عملکرد: بهینهشده برای استریم و اسناد بزرگ
- انعطافپذیری: با قطعات، فایلها یا URLهای زنده کار میکند
- خروجی تمیز: HTML را قالببندی و بازسازی میکند
نصب
jsoup را از طریق Maven یا Gradle اضافه کنید:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
نیازمندیهای سیستم: جاوا 8+
نمونههای کد
موارد استفاده عملی از jsoup:
مثال 1: تجزیه سند از یک رشته
اگر HTML را در یک رشته جاوا دارید و میخواهید آن را تجزیه کنید تا محتوای آن را دریافت یا تغییر دهید، jsoup میتواند این کار را با چند خط کد انجام دهد.
متد parse(String html, String baseUri) رشته HTML ورودی را به یک سند جدید تبدیل میکند. پارامتر baseUri به حل URLهای نسبی به مطلق کمک میکند و باید با URLای که سند از آن بازیابی شده است مطابقت داشته باشد. اگر این موضوع مرتبط نیست یا اگر HTML حاوی عنصر <base> باشد، میتوانید از متد سادهتر parse(String html) استفاده کنید.
مثال 2: استفاده از انتخابگرهای CSS برای یافتن عناصر
میخواهید عناصر را با استفاده از انتخابگرهای CSS پیدا یا دستکاری کنید. مستقیماً یک رشته HTML را تجزیه و دستکاری کنید:
مثال 3: تغییر HTML یک عنصر
نیاز دارید HTML یک عنصر را تغییر دهید. از متدهای تنظیم HTML در Element مانند نمونه زیر استفاده کنید:
ویژگیهای پیشرفته
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)
- سرعت: jsoup برای تجزیه خالص HTML سریعتر است
- سبک API: jsoup از انتخابگرهای CSS استفاده میکند؛ HTMLUnit از Selenium تقلید میکند
- موارد استفاده: jsoup برای استخراج؛ HTMLUnit برای تست صفحات پویا
- وابستگیها: jsoup ندارد؛ HTMLUnit به کتابخانههای اضافی نیاز دارد
نتیجهگیری
jsoup ابزار نهایی برای توسعهدهندگان جاوا است که با HTML کار میکنند. ایدهآل برای:
- استخراج وب: استخراج داده از هر وبسایت
- پاکسازی داده: ضدعفونی و عادیسازی HTML
- تحلیل محتوا: تجزیه فیدهای RSS یا آرشیوهای وب
- تست: تأیید ساختار HTML در برنامهها
با مجوز MIT و API شهودی، jsoup بهترین انتخاب برای پردازش HTML در جاوا است.
محصولات مشابه
- Apache POI XWPF | API جاوا منبع باز برای ایجاد و اصلاح فایل های DOCX
- DocX | API .NET منبع باز را برای ایجاد و اصلاح فایل های DOCX
- Docx4J | برای ایجاد و اصلاح فایلهای DOC و DOCX منبع باز Java API
- ExcelDataReader | API .NET منبع باز برای خواندن اسناد XLS، XLSX، CSV و صفحه گسترده
- FileFormat.Cells | فایل های اکسل را با سی شارپ دات نت تهیه و به روز کنید