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

عالی برای داده‌کاوی، خودکارسازی وب و تحلیل محتوا.

GitHub

آمار GitHub

نام:
زبان:
ستاره ها:
چنگال:
مجوز:
آخرین به روز رسانی مخزن در

چرا 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:

تجزیه HTML با 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 در جاوا است.

محصولات مشابه

 فارسی