Java:
การวิเคราะห์ HTML

วิธีการ:

ให้ใช้ Jsoup, ไลบรารีที่มีประโยชน์สำหรับการทำงานกับ HTML ในโลกจริง ขั้นแรก, เพิ่มความขึ้นต่อดังนี้:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.15.2</version>
</dependency>

ตอนนี้เรามาสู่ส่วนที่สนุก นี่คือวิธีการดึงชื่อหน้าเว็บและพิมพ์ออกมา:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class HtmlParser {
    public static void main(String[] args) throws IOException {
        String url = "http://example.com";
        Document doc = Jsoup.connect(url).get();
        String title = doc.title();
        System.out.println("Title: " + title);
    }
}

ผลลัพธ์:

Title: Example Domain

เราจะดึงลิงก์ทั้งหมดได้อย่างไร?

import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

// ... ภายใน main หรือวิธีการอื่น
Elements links = doc.select("a[href]");
for (Element link : links) {
    System.out.println("Link: " + link.attr("href"));
}

การดำดิ่งลึก

เมื่อก่อน HTML ถูกจัดการด้วยรูปแบบ regex, วิธีการที่มีความผิดพลาดสูงและน่าสยดสยองสำหรับเอกสารที่ซับซ้อน Jsoup เข้ามาในปลายทศวรรษ 2000s, ให้การเข้าถึงแบบ jQuery สำหรับ Java เพื่อการแยกวิเคราะห์, การเดินทางผ่าน, และการจัดการ HTML

Jsoup ไม่ใช่ตัวเลือกเดียวที่มี มี HtmlUnit สำหรับการทดสอบแอปพลิเคชันเว็บแบบเต็มรูปแบบพร้อมการสนับสนุน JavaScript, แต่มันหนักและซับซ้อนกว่า สำหรับงานเบาๆ, Apache Commons Validator เป็นตัวเลือกที่ดีเพื่อการดึงลิงก์เท่านั้น

ภายใต้ฝาครอบ, Jsoup ใช้ DOM parser, ซึ่งทำแบบจำลองทั้งเอกสารในหน่วยความจำเป็นต้นไม้ วิธีนี้ทำให้การเลือกและนำทางโครงสร้าง HTML เป็นเรื่องง่าย แถมยังยืดหยุ่นกับ HTML ที่ไม่เรียบร้อย, แก้ไขปัญหาทันทีเพื่อให้มั่นใจการวิเคราะห์ที่เข้มแข็ง

จำไว้ว่า, เมื่อดึงข้อมูล, ตรวจสอบไฟล์ robots.txt และข้อกำหนดการให้บริการของเว็บไซต์เสมอ เพื่อหลีกเลี่ยงปัญหาทางกฎหมายหรือการถูกแบน IP

ดูเพิ่มเติม