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

วิธีการ:

โดยค่าเริ่มต้น Swift ไม่มีไลบรารีที่ฝังอยู่เพื่อการแยกวิเคราะห์ HTML ซึ่งทำให้จำเป็นต้องใช้ไลบรารีภายนอกในการจัดการกิจกรรมนี้ได้อย่างมีประสิทธิภาพ SwiftSoup เป็นหนึ่งในตัวเลือกที่ได้รับความนิยมมากที่สุด ซึ่งเป็นไลบรารี Swift แท้ที่เสนอ syntax คล้ายกับ jQuery สำหรับการแยกวิเคราะห์และการจัดการ HTML

การติดตั้ง

ขั้นแรก คุณต้องเพิ่ม SwiftSoup เข้าไปในโปรเจ็กต์ของคุณ หากคุณกำลังใช้ Swift Package Manager คุณสามารถเพิ่มมันเข้าไปในความพึ่งพา Package.swift ของคุณได้:

dependencies: [
    .package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
]

ตัวอย่าง: การดึงลิงก์ออกจาก HTML

สมมติว่าคุณมีเอกสาร HTML และคุณต้องการดึงลิงก์ทั้งหมดออกมา (<a href="...">). ด้วย SwiftSoup คุณสามารถทำสิ่งนี้ได้อย่างง่ายดาย:

import SwiftSoup

let html = """
<!DOCTYPE html>
<html>
<head>
    <title>Sample Page</title>
</head>
<body>
    <p>Welcome to our website</p>
    <a href="https://example.com/page1">Page 1</a>
    <a href="https://example.com/page2">Page 2</a>
</body>
</html>
"""

do {
    let doc: Document = try SwiftSoup.parse(html)
    let links: Elements = try doc.select("a")
    for link in links.array() {
        let linkHref: String = try link.attr("href")
        let linkText: String = try link.text()
        print("\(linkText) - \(linkHref)")
    }
} catch Exception.Error(let type, let message) {
    print("ประเภทข้อผิดพลาด: \(type) ข้อความ: \(message)")
} catch {
    print("error")
}

ตัวอย่างผลลัพธ์

โค้ดก่อนหน้านี้จะดึง URL และข้อความของมันจาก HTML มาแสดงผล:

Page 1 - https://example.com/page1
Page 2 - https://example.com/page2

ตัวอย่างเบื้องต้นนี้สาธิตวิธีใช้ SwiftSoup สำหรับการแยกวิเคราะห์เอกสาร HTML ด้วยการสำรวจเอกสารของ SwiftSoup เพิ่มเติม คุณสามารถค้นพบวิธีการมากมายในการนำทาง ค้นหา และแก้ไขเนื้อหา HTML ทำให้แอปพลิเคชั่น Swift ของคุณสามารถประมวลผลเนื้อหาเว็บที่ซับซ้อนได้อย่างง่ายดาย