用 C# 從網站下載圖片

.NET 開發人員現在可以為商業軟體開發大量影像下載器。 Aspose.HTML for .NET 是一個合適的圖像提取服務,它提供了大量的類別和方法來以程式設計方式從 Web 中提取圖像。最重要的是,沒有複雜的 echo 系統來使用這個 C# 庫,您可以輕鬆地從 C# 網站下載圖像。此外,您可以使用Aspose.HTML for .NET提取圖形和文字數據,您可以在此處中查看其實作。那麼,讓我們開始這篇博文,不再多說。

我們將在本指南中介紹以下部分:

  1. 影像擷取服務安裝
  2. C# 從網站下載圖片 - 程式碼範例
  3. 線上資料擷取器

影像擷取服務安裝

因此,您可以透過安裝此 C# API 以程式方式解析 HTML 頁面。除了資料擷取之外,它還使您能夠將 HTML 頁面轉換為其他流行的文件格式。因此,在您的電腦上安裝 .NET,透過下載 DLL 檔案安裝此映像提取服務,或者您可以在 NuGet 套件管理器中使用下列命令:

PM> Install-Package Aspose.Html

安裝過程非常簡單,即使您遇到任何困難,也可以存取安裝說明此處

影像擷取服務

使用 C# 從網站下載圖像 - 程式碼範例

現在,我們可以實現以程式設計方式從 Web 中提取圖像的功能。

以下步驟示範如何使用 C# 從網站下載圖片:

  • 透過初始化 HTMLDocument 類別的物件來開啟要從中提取圖像的網頁。
  • 透過呼叫 GetElementsByTagName 方法收集所有「img」元素。
  • 呼叫 Select 方法來建立相對圖像 URL 的不同集合並建立絕對圖像 URL。
  • 循環遍歷所有絕對圖像 URL。
  • 透過初始化 RequestMessage 類別的物件來建立映像請求訊息。
  • 透過呼叫 Context.Network.Send(request) 方法來提取影像。
  • 檢查回應是否成功,並透過呼叫WriteAllBytes方法將映像儲存到本機檔案系統。

以下程式碼範例展示如何以程式設計方式開發批量圖像下載器:

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

namespace AsposeHTML
{
    class HTML
    {
        // 使用圖像擷取服務從網站下載圖像
        static void Main(string[] args)
        {
            // 定義工作目錄路徑。
            String dataDir = "/files/";
            // 透過初始化 HTMLDocument 類別的物件來開啟要從中提取圖像的網頁。 
            using var document = new HTMLDocument("https://blog.aspose.com/zh-hant/tex/latex-mathematical-expressions-using-latex-to-image-api/");
            // 收集所有<img>透過呼叫 GetElementsByTagName 方法來取得元素。 
            var images = document.GetElementsByTagName("img");
            // 呼叫 Select 方法來建立相對圖像 URL 的不同集合並建立絕對圖像 URL。 
            var urls = images.Select(element => element.GetAttribute("src")).Distinct();
            var absUrls = urls.Select(src => new Url(src, document.BaseURI));
            // 循環遍歷所有絕對圖像 URL。 
            foreach (var url in absUrls)
            {
                // 透過初始化RequestMessage類別的物件來建立圖像請求訊息。
                using var request = new RequestMessage(url);
                // 透過呼叫 Context.Network.Send(request) 方法來提取映像。 
                using var response = document.Context.Network.Send(request);
                // 檢查回應是否成功,並透過呼叫WriteAllBytes方法將映像儲存到本機檔案系統。
                if (response.IsSuccess)
                {
                    File.WriteAllBytes(Path.Combine(dataDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
                }
            }
        }
    }
}

您可以在下圖中看到輸出:

從網路中擷取影像

線上資料擷取器

有一個由 Aspose.HTML 提供支援的 線上 工具。然而,這款企業級線上資料擷取器配備了使用者友好的UI,您可以一鍵進行資料擷取。此外,它是基於網路的,不需要建立帳戶。因此,只需在網頁瀏覽器中開啟該工具並開始提取重要資料。事實上,在不久的將來,該線上工具將添加更多功能。

線上資料擷取器

從網路中提取圖像 - 獲取免費許可證

您可以獲得免費臨時許可證來嘗試此圖像提取服務,沒有評估限制。

結論

我們到此結束這篇博文,希望您已經學會如何使用 C# 以程式設計方式從網站下載圖片。此外,我們也完成了開發大量圖像下載器的步驟和程式碼片段。此外,您可以使用 Aspose.HTML for .NET 在 C# 中編寫幾行程式碼來從 Web 中擷取映像。因此,您可以找到有關使用和開發的綜合文件。此外,API 參考文獻 將為 .NET 開發人員提供一個起點。

請與 aspose.com 保持聯繫以獲取即將發布的部落格文章。

提供協助

您可以在我們的論壇上分享您的問題或疑問。

常見問題 – 常見問題解答

如何從 URL 下載圖像?

您可以使用 Aspose.HTML for .NET 從 C# 網站下載圖片。此外,請訪問此連結以了解如何使用此圖像提取服務來實現此功能。

如何在線提取數據?

線上資料擷取器可讓您穩健且有效率地從網站中擷取文字和圖形資料。

也可以看看