CodePlus | C# 网页所有图片批量下载

C# 网页所有图片批量下载

文章目录

  • C# 网页所有图片批量下载
    • 前言
    • 演示效果
    • 操作步骤
      • 第一步:安装CodePlus扩展库
      • 第二步:提取链接程序
      • 第三步:取网页源码
      • 第四步:设置前后缀
      • 第五步:执行下载
    • 更多演示
    • 结束语

前言

今天想着换一个头像,但是一时不知道去哪儿找图比较好。翻一翻手机的相册,里面一片鸟语花香,像是老年人的相册,实在是没有勇气将自己的头像换成荷花儿。于是就开始琢磨去哪里能找到别人精挑细选的头像,懒得自己做饭了,就吃点儿现成的吧。
找到了一个音频直播的平台,里面全部都是照骗(毕竟是音频直播。你懂的)。随便翻翻大堆酷guy头像,那我就不客气了。
我打算通过关键字截取的方式提取网页源码中的所有图片链接,即:通过图片链接前后的关键字作为匹配的特征,将网页源码文本中的特定字符串批量提取出来。

演示效果

这是原始网页截图:
CodePlus | C# 网页所有图片批量下载_第1张图片
这是运行程序和文件夹的截图:
CodePlus | C# 网页所有图片批量下载_第2张图片

操作步骤

第一步:安装CodePlus扩展库

安装方法请参考文章:C# 创建N个线程同时批量下载文件

第二步:提取链接程序

CodePlus | C# 网页所有图片批量下载_第3张图片
CodePlus | C# 网页所有图片批量下载_第4张图片

// 源文本内容通过前缀字符串和后缀字符串的匹配,提取所有中间部分文本
var result = tbSource.Text.MatchByPrefixAndSuffix(tbPrefix.Text, tbSuffix.Text);

// 将所有匹配结果按行显示在文本框中
tbSource.Lines = result.ToArray();

第三步:取网页源码

在网页上按F12调出开发者工具箱,找到排列图片的容器:
CodePlus | C# 网页所有图片批量下载_第5张图片
全部复制出来:
CodePlus | C# 网页所有图片批量下载_第6张图片

第四步:设置前后缀

找到一条图片标签,看一下格式:

<img src="//p4.music.126.net/59lauaa0dBZHKPCWgnv1ag==/109951168181660252.jpg?imageView=1&type=webp&thumbnail=80y80" class="img_Bh8DM" loading="lazy">

其中,CodePlus | C# 网页所有图片批量下载_第7张图片
这样所有的图片链接就得到啦!

第五步:执行下载

下载程序依然参考文章:C# 创建N个线程同时批量下载文件

因为截取的链接前没有https,另外为了下载不重复于是对DownloadHandler方法稍作修改:

        /// 
        /// 每个组的链接下载处理过程
        /// 
        /// 
        private void DownloadHandler(IEnumerable<string> urlGroup)
        {
            // 创建WebClient
            WebClient client = new WebClient();

            // 遍历Url
            foreach (string url in urlGroup)
            {
                // 从链接中获取文件名
                var fileName = Path.GetFileName(url);

                // 文件保存路径
                var savePath = Path.Combine(tbSavePath.Text, fileName);

                // 如果已存在同名文件则跳过此下载项
                if (File.Exists(savePath))
                {
                    continue;
                }

                // 下载文件到指定目录
                client.DownloadFile("https://" + url, savePath);
            }
        }

到此,网站上的图片全都收入囊中了。
CodePlus | C# 网页所有图片批量下载_第8张图片

更多演示

同样的方法,BiliBili主页的图片也可以下载哦:
CodePlus | C# 网页所有图片批量下载_第9张图片
设置前后缀的关键字:
CodePlus | C# 网页所有图片批量下载_第10张图片

结束语

CodePlus扩展库中包含许多便捷开发的扩展方法,能极大程度上简化基础开发,欢迎体验。

你可能感兴趣的:(CodePlus,爬虫,c#,c#,开发语言,CodePlus,爬虫)