วิธีแยกรูปภาพจาก HTML
ความสามารถในการแยกรูปภาพจาก HTML เป็นสิ่งสำคัญสำหรับแอปพลิเคชันต่างๆ เช่น การคัดลอกเว็บและการวิเคราะห์เนื้อหา Aspose.HTML สำหรับ .NET เป็นไลบรารีที่มีประสิทธิภาพซึ่งช่วยให้กระบวนการนี้ง่ายขึ้นโดยเสนอชุดเครื่องมือให้นักพัฒนานำทางและรวบรวมข้อมูลจากเอกสาร HTML ได้อย่างราบรื่น เรามาสำรวจวิธีการแยกรูปภาพจากเอกสาร HTML กันดีกว่า
ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ Aspose.HTML สำหรับ .NET ติดตั้ง ในโปรเจ็กต์ของคุณ กระบวนการติดตั้งไลบรารีนี้ค่อนข้างง่าย เปิดตัวจัดการแพ็คเกจ NuGet ค้นหา Aspose.HTML และติดตั้ง คุณยังอาจใช้คำสั่งต่อไปนี้จาก Package Manager Console:
ติดตั้ง Aspose.HTML สำหรับ .NET
Install-Package Aspose.HTML
แยกรูปภาพจาก HTML โดยใช้ C#
เมื่อใช้ไลบรารีคลาส Aspose.HTML สำหรับ .NET คุณสามารถสร้างแอปพลิเคชันของคุณเองได้อย่างง่ายดาย เนื่องจาก API ของเรามีชุดเครื่องมือที่มีประสิทธิภาพในการวิเคราะห์และรวบรวมข้อมูลจากเอกสาร HTML หากคุณต้องการใช้ฟีเจอร์การคัดลอกข้อมูล HTML ในผลิตภัณฑ์ของคุณหรือแยกข้อมูลจาก HTML โดยทางโปรแกรม โปรดดูตัวอย่างโค้ดด้านล่าง ไม่ว่าคุณจะสร้างเว็บสแครปเปอร์หรือเครื่องมือวิเคราะห์เนื้อหา Aspose.HTML ทำให้การแยกรูปภาพเป็นกระบวนการที่ใช้งานง่าย คุณสามารถดาวน์โหลดรูปภาพทั้งหมดจากเอกสาร HTML ด้วยโค้ด C# ไม่กี่บรรทัด:
รหัส C# เพื่อดึงภาพจาก HTML
using Aspose.Html;
using Aspose.Html.Net;
using System.Linq;
using System.IO;
...
// Prepare a path to a source HTML file
string documentPath = Path.Combine(DataDir, "images-from-html.html");
// Create an instance of an HTML document
using (var document = new HTMLDocument(documentPath))
{
// Collect all <img> elements
var images = document.GetElementsByTagName("img");
// Create a distinct collection of relative image URLs
var urls = images.Select(element => element.GetAttribute("src")).Distinct();
// Create absolute image URLs
var absUrls = urls.Select(src => new Url(src, document.BaseURI));
foreach (var url in absUrls)
{
// Create an image request message
using var request = new RequestMessage(url);
// Download image
using var response = document.Context.Network.Send(request);
var imgName = url.Pathname.Split('/').Last();
//Check the image in base64 encoding
if (url.Protocol == "data:" && response.Headers.ContentType.MediaType.Type == "image")
{
// Get the image type and set to extension
imgName = "img1." + response.Headers.ContentType.MediaType.SubType;
}
// Check whether a response is successful
if (response.IsSuccess)
{
// Save image to a local file system
File.WriteAllBytes(Path.Combine(OutputDir, imgName), response.Content.ReadAsByteArray());
}
}
}
ขั้นตอนในการแยกรูปภาพจาก HTML
- ใช้ตัวสร้าง HTMLDocument() เพื่อเริ่มต้นเอกสาร HTML
- ใช้เมธอด
GetElementsByTagName(
"img"
) เพื่อรวบรวมองค์ประกอบ<img>
ทั้งหมด วิธีการส่งคืนรายการองค์ประกอบ<img>
ของเอกสาร HTML - ใช้เมธอด
Select()
เพื่อสร้างคอลเลกชันที่แตกต่างกันของ URL รูปภาพที่เกี่ยวข้อง และใช้เมธอด [GetAttribute("src")](5) เพื่อแยกแอตทริบิวต์
srcขององค์ประกอบ
` แต่ละรายการ. - สร้าง URL รูปภาพที่สมบูรณ์โดยใช้คลาส
Url
และคุณสมบัติ
BaseURI
ของคลาสHTMLDocument
- สำหรับแต่ละ URL ที่สมบูรณ์ ให้สร้างคำขอโดยใช้ตัวสร้าง
RequestMessage(
url
) - ใช้เมธอด
Context.Network.Send(request)
ของเอกสารเพื่อส่งคำขอ มีการตรวจสอบการตอบสนองเพื่อให้แน่ใจว่าสำเร็จ - หากการตอบสนองสำเร็จ ให้ใช้เมธอด
File.WriteAllBytes()
เพื่อบันทึกแต่ละภาพลงในไฟล์ในเครื่อง - ในข้อมูลโค้ด เราจะตรวจสอบว่ารูปภาพอยู่ในรูปแบบที่เข้ารหัส Base64 หรือไม่ โดยตรวจสอบโปรโตคอลของ URL และตั้งชื่อรูปภาพและนามสกุลหากเป็นจริง
Aspose.HTML สำหรับ .NET เป็นไลบรารีการแยกวิเคราะห์ HTML ขั้นสูง เราสามารถสร้าง แก้ไข นำทางผ่านโหนด แยกข้อมูล รวมและแปลงไฟล์ HTML, XHTML, MD, EPUB และ MHTML เป็น PDF, DOCX, รูปภาพ และรูปแบบยอดนิยมอื่น ๆ นอกจากนี้ยังจัดการ CSS, HTML Canvas, SVG, XPath และ JavaScript ได้ทันทีเพื่อขยายงานการจัดการ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งไลบรารี C# และข้อกำหนดของระบบ โปรดดูที่ เอกสาร Aspose.HTML
คุณสมบัติไลบรารี C# อื่น ๆ ที่รองรับ
ใช้ไลบรารี Aspose.HTML สำหรับ .NET เพื่อแยกวิเคราะห์และจัดการเอกสารที่ใช้ HTML ชัดเจน ปลอดภัย และเรียบง่าย!