CodePlus | C# 网页所有图片批量下载
C# 網頁所有圖片批量下載
文章目錄
- C# 網頁所有圖片批量下載
- 前言
- 演示效果
- 操作步驟
- 第一步:安裝CodePlus擴展庫
- 第二步:提取鏈接程序
- 第三步:取網頁源碼
- 第四步:設置前后綴
- 第五步:執行下載
- 更多演示
- 結束語
前言
今天想著換一個頭像,但是一時不知道去哪兒找圖比較好。翻一翻手機的相冊,里面一片鳥語花香,像是老年人的相冊,實在是沒有勇氣將自己的頭像換成荷花兒。于是就開始琢磨去哪里能找到別人精挑細選的頭像,懶得自己做飯了,就吃點兒現成的吧。
找到了一個音頻直播的平臺,里面全部都是照騙(畢竟是音頻直播。你懂的)。隨便翻翻大堆酷guy頭像,那我就不客氣了。
我打算通過關鍵字截取的方式提取網頁源碼中的所有圖片鏈接,即:通過圖片鏈接前后的關鍵字作為匹配的特征,將網頁源碼文本中的特定字符串批量提取出來。
演示效果
這是原始網頁截圖:
這是運行程序和文件夾的截圖:
操作步驟
第一步:安裝CodePlus擴展庫
安裝方法請參考文章:C# 創建N個線程同時批量下載文件
第二步:提取鏈接程序
第三步:取網頁源碼
在網頁上按F12調出開發者工具箱,找到排列圖片的容器:
全部復制出來:
第四步:設置前后綴
找到一條圖片標簽,看一下格式:
<img src="//p4.music.126.net/59lauaa0dBZHKPCWgnv1ag==/109951168181660252.jpg?imageView=1&type=webp&thumbnail=80y80" class="img_Bh8DM" loading="lazy">其中,<img src="//可以作為前綴。?imageView=之后跟的是尺寸參數,我們需要原圖,所以可以直接作為后綴。
填入參數并截取:
這樣所有的圖片鏈接就得到啦!
第五步:執行下載
下載程序依然參考文章:C# 創建N個線程同時批量下載文件
因為截取的鏈接前沒有https,另外為了下載不重復于是對DownloadHandler方法稍作修改:
/// <summary>/// 每個組的鏈接下載處理過程/// </summary>/// <param name="urlGroup"></param>private void DownloadHandler(IEnumerable<string> urlGroup){// 創建WebClientWebClient client = new WebClient();// 遍歷Urlforeach (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);}}到此,網站上的圖片全都收入囊中了。
更多演示
同樣的方法,BiliBili主頁的圖片也可以下載哦:
設置前后綴的關鍵字:
結束語
CodePlus擴展庫中包含許多便捷開發的擴展方法,能極大程度上簡化基礎開發,歡迎體驗。
總結
以上是生活随笔為你收集整理的CodePlus | C# 网页所有图片批量下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python下载网页图片
- 下一篇: Android FM模块学习之四源码解析