วิธีดึง SVG จากเว็บไซต์

ความสามารถในการดึงรูปภาพจาก HTML เป็นสิ่งสำคัญสำหรับการใช้งานต่าง ๆ เช่น การสกัดข้อมูลจากเว็บไซต์ (web scraping) และการวิเคราะห์เนื้อหา Aspose.HTML for Python via .NET เป็นไลบรารีที่ทรงพลังซึ่งช่วยให้นักพัฒนาสามารถดำเนินกระบวนการนี้ได้ง่ายขึ้น โดยมีเครื่องมือในการนำทางและดึงข้อมูลจากเอกสาร HTML ได้อย่างราบรื่น โซลูชันนี้เหมาะอย่างยิ่งสำหรับผู้ที่ต้องการรวบรวม SVG เพื่อการวิเคราะห์ การเก็บถาวร หรือการสร้างเนื้อหา โดยไม่ต้องดำเนินการด้วยตนเอง มาดูกันว่าเราจะดาวน์โหลดภาพ SVG จากหน้าเว็บได้อย่างไร


ดึง SVG ด้วย Python

รูปภาพ SVG ในเอกสาร HTML มีอยู่ 2 รูปแบบ คือ inline SVG และ external SVG โค้ด Python ต่อไปนี้แสดงวิธีการดึง external SVG โดยอัตโนมัติ ซึ่งเป็นไฟล์ SVG ที่แยกเก็บไว้นอก HTML และถูกเรียกใช้งานผ่านแท็ก <img> โดยใช้ไลบรารี Aspose.HTML for Python via .NET:


โค้ด Python สำหรับดาวน์โหลด SVG จากหน้าเว็บ

import os
import aspose.html as ah
import aspose.html.net as ahnet

# Define the output directory
output_dir = "output/svg/"
os.makedirs(output_dir, exist_ok=True)

# Open the document you want to extract external SVGs from
document = ah.HTMLDocument("https://products.aspose.com/html/python-net/")

# Collect all <img> elements
images = document.get_elements_by_tag_name("img")

# Create a distinct collection of relative image URLs
urls = set(img.get_attribute("src") for img in images)

# Filter only SVG images
svg_urls = [url for url in urls if url.endswith(".svg")]

# Convert relative URLs to absolute using Url from aspose.html
abs_urls = [ah.Url(url, document.base_uri) for url in svg_urls]

for url in abs_urls:
    # Create a network request for the SVG
    request = ahnet.RequestMessage(url.href)

    # Send request to fetch the SVG
    response = document.context.network.send(request)

    # Check if request succeeded
    if response.is_success:
        # Determine local file path
        file_path = os.path.join(output_dir, os.path.basename(url.pathname))

        # Save SVG to a local file system
        with open(file_path, "wb") as f:
            f.write(response.content.read_as_byte_array())


ขั้นตอนการดึง SVG จากเว็บไซต์

  1. ใช้คอนสตรัคเตอร์ HTMLDocument(Url) เพื่อสร้างอินสแตนซ์ของคลาส HTMLDocument และส่ง URL ของเว็บไซต์ที่คุณต้องการดึงภาพ SVG ภายนอก
  2. ใช้เมธอด get_elements_by_tag_name("img") เพื่อรวบรวมองค์ประกอบ <img> ทั้งหมดจากเอกสาร HTML ซึ่งจะคืนค่าเป็นรายการของแท็กภาพทั้งหมดที่ฝังอยู่ในหน้า
  3. วนซ้ำผ่านองค์ประกอบ <img> ที่รวบรวมมา และใช้เมธอด get_attribute("src") เพื่อดึงค่าของแอตทริบิวต์ src จากแต่ละองค์ประกอบ แล้วจัดเก็บในเซตเพื่อขจัดค่าที่ซ้ำกัน
  4. กรอง URL ที่ได้โดยตรวจสอบว่า URL ลงท้ายด้วย “.svg” เพื่อแยกเฉพาะภาพ SVG ภายนอก
  5. ใช้คลาส Url และ base_uri ของเอกสารเพื่อสร้าง URL แบบสมบูรณ์ของภาพ SVG
  6. สร้างอินสแตนซ์ RequestMessage สำหรับแต่ละ URL ของภาพ SVG เพื่อเตรียมคำขอ HTTP สำหรับดึงภาพ
  7. ส่งคำขอและตรวจสอบคุณสมบัติ is_success เพื่อยืนยันว่าการตอบกลับสำเร็จหรือไม่
  8. ใช้ os.path.basename(url.pathname) เพื่อดึงชื่อไฟล์จาก URL แล้วบันทึกภาพ SVG ลงในระบบไฟล์โดยเขียนข้อมูลไบนารีไปยังโฟลเดอร์ปลายทาง

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการดึง SVG ทั้งแบบ inline และ external จากเว็บไซต์แบบโปรแกรมอัตโนมัติ โปรดดูบทความในเอกสาร: การดึง SVG จากเว็บไซต์ด้วย Python

หมายเหตุ: โปรดเคารพลิขสิทธิ์อยู่เสมอ ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์ การอนุญาต หรือใบอนุญาตที่เหมาะสมก่อนนำภาพที่ดึงมาไปใช้ในเชิงพาณิชย์ เราไม่สนับสนุนหรืออนุญาตให้ใช้เนื้อหาที่มีลิขสิทธิ์โดยไม่ได้รับอนุญาต



เริ่มต้นใช้งาน Python API

หากคุณต้องการวิเคราะห์ จัดการ และจัดการเอกสาร HTML ให้ติดตั้ง Aspose.HTML for Python via .NET API ที่มีความยืดหยุ่นและความเร็วสูงของเรา pip คือวิธีที่ง่ายที่สุดในการดาวน์โหลดและติดตั้งไลบรารี Python หากต้องการทำเช่นนี้ ให้เรียกใช้คำสั่งต่อไปนี้:

pip install aspose-html-net

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งไลบรารี Python และข้อกำหนดของระบบ โปรดดูที่ เอกสาร Aspose.HTML

ฟีเจอร์อื่นที่รองรับ

ใช้ไลบรารี Aspose.HTML for Python via .NET เพื่อแยกวิเคราะห์และจัดการเอกสาร HTML ได้อย่างชัดเจน ปลอดภัย และง่ายดาย!