วิธีดึง 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 จากเว็บไซต์
- ใช้คอนสตรัคเตอร์
HTMLDocument(Url)
เพื่อสร้างอินสแตนซ์ของคลาส HTMLDocument และส่ง URL ของเว็บไซต์ที่คุณต้องการดึงภาพ SVG ภายนอก - ใช้เมธอด
get_elements_by_tag_name("img")
เพื่อรวบรวมองค์ประกอบ<img>
ทั้งหมดจากเอกสาร HTML ซึ่งจะคืนค่าเป็นรายการของแท็กภาพทั้งหมดที่ฝังอยู่ในหน้า - วนซ้ำผ่านองค์ประกอบ
<img>
ที่รวบรวมมา และใช้เมธอดget_attribute("src")
เพื่อดึงค่าของแอตทริบิวต์src
จากแต่ละองค์ประกอบ แล้วจัดเก็บในเซตเพื่อขจัดค่าที่ซ้ำกัน - กรอง URL ที่ได้โดยตรวจสอบว่า URL ลงท้ายด้วย “.svg” เพื่อแยกเฉพาะภาพ SVG ภายนอก
- ใช้คลาส
Url
และbase_uri
ของเอกสารเพื่อสร้าง URL แบบสมบูรณ์ของภาพ SVG - สร้างอินสแตนซ์
RequestMessage
สำหรับแต่ละ URL ของภาพ SVG เพื่อเตรียมคำขอ HTTP สำหรับดึงภาพ - ส่งคำขอและตรวจสอบคุณสมบัติ
is_success
เพื่อยืนยันว่าการตอบกลับสำเร็จหรือไม่ - ใช้
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 ได้อย่างชัดเจน ปลอดภัย และง่ายดาย!