优秀的编程知识分享平台

网站首页 > 技术文章 正文

C# 获取指定站点所有图片的简单例子

nanyue 2024-08-16 19:49:20 技术文章 7 ℃

要获取指定站点的所有图片,您可以使用C#中的HttpClient和HTML解析库(如HtmlAgilityPack)来实现。

下面是一个简单的示例:

using System;
using System.Collections.Generic;
using System.Net.Http;
using HtmlAgilityPack;

public class Program
{
    public static async Task Main()
    {
        string url = "https://example.com"; // 指定站点的URL

        // 创建HttpClient实例
        using (HttpClient client = new HttpClient())
        {
            // 发送GET请求并获取响应内容
            HttpResponseMessage response = await client.GetAsync(url);
            string htmlContent = await response.Content.ReadAsStringAsync();

            // 使用HtmlAgilityPack解析HTML内容
            HtmlDocument htmlDocument = new HtmlDocument();
            htmlDocument.LoadHtml(htmlContent);

            // 获取所有img标签
            List<string> imageUrls = new List<string>();
            foreach (HtmlNode imgNode in htmlDocument.DocumentNode.Descendants("img"))
            {
                string imageUrl = imgNode.GetAttributeValue("src", "");
                if (!string.IsNullOrEmpty(imageUrl))
                {
                    // 如果图片URL是相对路径,则拼接成绝对路径
                    if (!Uri.IsWellFormedUriString(imageUrl, UriKind.Absolute))
                    {
                        imageUrl = new Uri(new Uri(url), imageUrl).AbsoluteUri;
                    }
                    imageUrls.Add(imageUrl);
                }
            }

            // 打印所有图片URL
            foreach (string imageUrl in imageUrls)
            {
                Console.WriteLine(imageUrl);
            }
        }
    }
}

在上面的示例中,我们使用HttpClient发送GET请求来获取指定站点的HTML内容。

然后,使用HtmlAgilityPack解析HTML内容,并找到所有的img标签。

最后,我们将图片的URL打印出来。

请注意,这只是一个简单的示例,仅用于演示如何获取指定站点的所有图片。

在实际应用中,您可能需要处理更复杂的HTML结构和处理异常情况。

希望这个示例对您有所帮助!

最近发表
标签列表