Tải xuống hình ảnh từ trang web bằng C#

Các nhà phát triển .NET hiện có thể phát triển trình tải xuống hình ảnh hàng loạt cho phần mềm doanh nghiệp. Aspose.HTML for .NET là một dịch vụ trích xuất hình ảnh thích hợp cung cấp rất nhiều lớp và phương thức để trích xuất hình ảnh từ web theo chương trình. Trên hết, không có hệ thống echo phức tạp để sử dụng thư viện C# này và bạn có thể tải xuống hình ảnh từ trang web bằng C# một cách dễ dàng. Ngoài ra, bạn có thể trích xuất dữ liệu đồ họa cũng như văn bản bằng cách sử dụng Aspose.HTML for .NET này mà bạn có thể xem cách triển khai tại đây. Vì vậy, chúng ta hãy bắt đầu bài đăng blog này mà không nêu thêm bất kỳ từ nào.

Chúng tôi sẽ đề cập đến các phần sau trong hướng dẫn này:

  1. Cài đặt dịch vụ trích xuất ảnh
  2. Tải xuống hình ảnh từ trang web bằng C# - Mẫu mã
  3. Trình trích xuất dữ liệu trực tuyến

Cài đặt dịch vụ trích xuất ảnh

Vì vậy, bạn có thể phân tích các trang HTML theo chương trình bằng cách cài đặt API C# này. Ngoài việc trích xuất dữ liệu, nó còn cho phép bạn chuyển đổi các trang HTML sang các định dạng tệp phổ biến khác. Do đó, hãy cài đặt .NET trên máy của bạn, cài đặt dịch vụ trích xuất hình ảnh này bằng cách tải xuống tệp DLL hoặc bạn có thể nhập lệnh sau vào NuGet Trình quản lý gói:

PM> Install-Package Aspose.Html

Quá trình cài đặt rất đơn giản, nếu gặp khó khăn gì bạn có thể xem hướng dẫn cài đặt tại đây.

dịch vụ trích xuất hình ảnh

Tải xuống hình ảnh từ trang web bằng C# - Mẫu mã

Bây giờ, chúng ta có thể triển khai chức năng trích xuất hình ảnh từ web theo chương trình.

Các bước sau đây minh họa cách tải xuống hình ảnh từ trang web trong C#:

  • Mở một trang web mà bạn muốn trích xuất hình ảnh bằng cách khởi tạo một đối tượng của lớp HTMLDocument.
  • Thu thập tất cả các phần tử “img” bằng cách gọi phương thức GetElementsByTagName.
  • Gọi phương thức Chọn để tạo một bộ sưu tập URL hình ảnh tương đối riêng biệt và tạo URL hình ảnh tuyệt đối.
  • Lặp lại tất cả các URL hình ảnh tuyệt đối.
  • Tạo thông báo yêu cầu hình ảnh bằng cách khởi tạo một đối tượng của lớp RequestMessage.
  • Trích xuất hình ảnh bằng cách gọi phương thức Context.Network.Send(request).
  • Kiểm tra xem phản hồi có thành công hay không và lưu hình ảnh vào hệ thống tệp cục bộ bằng cách gọi phương thức WriteAllBytes.

Mẫu mã sau đây cho thấy cách phát triển trình tải xuống hình ảnh hàng loạt theo chương trình:

using Aspose.Html;
using Aspose.Html.Net;

namespace AsposeHTML
{
    class HTML
    {
        // Tải hình ảnh từ trang web bằng dịch vụ trích xuất hình ảnh
        static void Main(string[] args)
        {
            // Xác định đường dẫn thư mục làm việc.
            String dataDir = "/files/";
            // Mở một trang web mà bạn muốn trích xuất hình ảnh bằng cách khởi tạo một đối tượng của lớp HTMLDocument. 
            using var document = new HTMLDocument("https://blog.aspose.com/vi/tex/latex-mathematical-expressions-using-latex-to-image-api/");
            // Thu thập tất cả<img> phần tử bằng cách gọi phương thức GetElementsByTagName. 
            var images = document.GetElementsByTagName("img");
            // Gọi phương thức Chọn để tạo một tập hợp URL hình ảnh tương đối riêng biệt và tạo URL hình ảnh tuyệt đối. 
            var urls = images.Select(element => element.GetAttribute("src")).Distinct();
            var absUrls = urls.Select(src => new Url(src, document.BaseURI));
            // Lặp lại tất cả các URL hình ảnh tuyệt đối. 
            foreach (var url in absUrls)
            {
                // Tạo một thông báo yêu cầu hình ảnh bằng cách khởi tạo một đối tượng của lớpRequestMessage.
                using var request = new RequestMessage(url);
                // Trích xuất hình ảnh bằng cách gọi phương thức Context.Network.Send(request).
                using var response = document.Context.Network.Send(request);
                // Kiểm tra xem phản hồi có thành công hay không và lưu hình ảnh vào hệ thống tệp cục bộ bằng cách gọi phương thức WriteAllBytes.
                if (response.IsSuccess)
                {
                    File.WriteAllBytes(Path.Combine(dataDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
                }
            }
        }
    }
}

Bạn có thể thấy đầu ra trong hình ảnh dưới đây:

trích xuất hình ảnh từ web

Trình trích xuất dữ liệu trực tuyến

Có một công cụ trực tuyến được cung cấp bởi Aspose.HTML. Tuy nhiên, trình trích xuất dữ liệu trực tuyến cấp doanh nghiệp này được trang bị giao diện người dùng thân thiện với người dùng và bạn có thể thực hiện trích xuất dữ liệu chỉ bằng một cú nhấp chuột. Hơn nữa, nó dựa trên web và không yêu cầu tạo tài khoản. Vì vậy, chỉ cần mở công cụ này trong trình duyệt web và bắt đầu trích xuất dữ liệu quan trọng. Trên thực tế, các tính năng khác sẽ được thêm vào công cụ trực tuyến này trong tương lai gần.

công cụ trích xuất dữ liệu trực tuyến

Trích xuất hình ảnh từ web - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử dịch vụ trích xuất hình ảnh này mà không bị giới hạn về đánh giá.

Phần kết luận

Chúng tôi sẽ kết thúc bài đăng blog này tại đây và chúng tôi hy vọng bạn đã học được cách tải xuống hình ảnh từ trang web bằng C# theo chương trình. Hơn nữa, chúng tôi cũng đã thực hiện các bước và đoạn mã để phát triển trình tải xuống hình ảnh hàng loạt. Ngoài ra, bạn có thể trích xuất hình ảnh từ web bằng cách viết một vài dòng mã bằng C# bằng Aspose.HTML for .NET. Vì vậy, bạn có thể tìm thấy tài liệu toàn diện về cách sử dụng và phát triển. Hơn nữa, [tài liệu tham khảo] API 17 sẽ cung cấp điểm khởi đầu cho các nhà phát triển .NET.

Vui lòng giữ liên lạc với aspose.com để biết các bài đăng blog sắp tới.

Trợ giúp có sẵn

Bạn có thể chia sẻ câu hỏi hoặc thắc mắc của mình trên diễn đàn của chúng tôi.

Câu hỏi thường gặp – Câu hỏi thường gặp

Làm cách nào để tải xuống hình ảnh từ một URL?

Bạn có thể tải xuống hình ảnh từ trang web bằng C# bằng cách sử dụng Aspose.HTML for .NET. Hơn nữa, vui lòng truy cập liên kết này để tìm hiểu cách đạt được chức năng này bằng dịch vụ trích xuất hình ảnh này.

Làm thế nào để trích xuất dữ liệu trực tuyến?

Trình trích xuất dữ liệu trực tuyến này cho phép bạn trích xuất dữ liệu văn bản và đồ họa từ các trang web một cách mạnh mẽ và hiệu quả.

Xem thêm