網絡編程 —— Http使用httpClient實現頁面爬蟲

先去找類型的a標簽 取出圖片所在網址 取出https://desk.3gbizhi.com/deskMV/438.html

搭建Form界面

Http類?

public static HttpClient Client { get; }
static Http()
{HttpClientHandler handler = new HttpClientHandler();//處理消息對象//ServerCertificateCustomValidationCallback  是否開啟免驗證策略,有的網站不安全,//瀏覽器阻止你訪問,需要把驗證忽略掉handler.ServerCertificateCustomValidationCallback = (message, cart, chain, error) => { return true; };Client = new HttpClient(handler);//請求對象}

圖片所在頁面網址的正則

Regex imgHtml = new Regex(@"<a href=""(https://[a-zA-Z0-9/\.]+\.html)"" class=""[a-zA-Z0-9]* imgw"" target=""_blank"">" );
//< a href = "https://pic.3gbizhi.com/uploadmark/20231006/c54bae39ffc4a10b023fc5c7adfee803.jpg" class="arrows" target="_blank"><i class="fa fa-search-plus fa-fw"></i></a>
Regex picReg = new Regex(@"<a href=""(https://pic\.3gbizhi\.com/uploadmark/\d+/[a-zA-Z0-9]+\.(jpg|png))"" class=""arrows"" target=""_blank"">");
按鈕的點擊事件
string url = this.textBox1.Text;// 獲取爬蟲的url index_23.html
int start = int.Parse(this.textBox3.Text); //開始頁數 index_1.html
int end = int.Parse(this.textBox4.Text); //結束頁數 index_2.html
Regex reg = new Regex(@"index_\d+\.html$");
url = reg.Replace(url,""); //Replace =替換,把后面替換前面類型的字符串https://desk.3gbizhi.com/deskMV/
for (int i = start; i <=end; i++)
{string nowURL = $"{url}/index_{i}.html";HttpResponseMessage res = await Http.Client.GetAsync(nowURL);string data = await res.Content.ReadAsStringAsync();// 整體html字符串// 從data所有字符串匹配滿足正則的字符串 返回結果是MatchCollection的數據集合MatchCollection maths = imgHtml.Matches(data);foreach (Match item in maths){ //下面需要根據html 匹配類型以下格式圖片var res1 =  await Http.Client.GetAsync(picURL);string data1 = await res1.Content.ReadAsStringAsync();string picURL1 = picReg.Match(data1).Groups[1].Value;Console.WriteLine(picURL1);downLoad(picURL1);}
} 
 public async void downLoad(string url){var res =  await Http.Client.GetAsync(url);byte[] b1 = await res.Content.ReadAsByteArrayAsync();//C:\Users\Administrator\DesktopFile.WriteAllBytes(@"C:\Users\Administrator\Desktop\PP\"+Path.GetFileName(url), b1);}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19065.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19065.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19065.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安卓手機APP開發___設置鬧鐘

安卓手機APP開發___設置鬧鐘 目錄 概述 設置不精確鬧鐘 在特定時間后發出鬧鐘 在特定時間范圍內觸發鬧鐘 以大致有規律的時間間隔響起重復鬧鐘 設置精確的鬧鐘 系統會在未來的某個精確時刻調用精確鬧鐘。 可能不需要精確鬧鐘的用例 設置精確鬧鐘的方法 系統資源消耗…

萬億應急國債項目之通信指揮類應急裝備多鏈路聚合通信設備在應急行業中的重要作用

萬億應急國債項目的推出&#xff0c;無疑是我國在應急領域的一次重大舉措。在這一宏大藍圖中&#xff0c;通信指揮類應急裝備的多鏈路聚合通信設備顯得尤為重要&#xff0c;其在應急行業中所發揮的作用&#xff0c;堪稱不可或缺的關鍵一環。 通信指揮是應急響應中的核心環節&a…

QT C++ 讀寫mySQL數據庫 圖片 例子

在上篇文章中描述了怎樣搭建讀寫數據庫的環境。 本文更進一步&#xff0c;描述了讀寫mySQL數據庫&#xff0c;字符、整型數字、圖片。讀寫圖片相對難點。 數據庫的圖片字段用BLOB&#xff0c;如果圖片較大要用longblob,否則會報錯。 另外&#xff0c;讀寫數據庫都使用了短連…

Pytorch 星號*放在tensor前的作用

假如有一個多維tensor&#xff0c;名為id&#xff0c;那么*id的意思是什么呢&#xff1f; GPT答&#xff1a; 如果 id 是一個多維張量&#xff0c;那么 *id 在這種情況下會將這個多維張量解包成一個張量序列&#xff0c;其中每個元素都是一個更低維度的張量。具體來說&#x…

圖形學初識--空間變換

文章目錄 前言正文矩陣和向量相乘二維變換1、縮放2、旋轉3、平移4、齊次坐標下總結 三維變換1、縮放2、平移3、旋轉繞X軸旋轉&#xff1a;繞Z軸旋轉&#xff1a;繞Y軸旋轉&#xff1a; 結尾&#xff1a;喜歡的小伙伴可以點點關注贊哦 前言 前面章節補充了一下基本的線性代數中…

前端Vue小兔鮮兒電商項目實戰Day02

一、Pinia快速入門 此處見&#xff1a;Vue從入門到實戰Day12-CSDN博客 二、創建項目并精細化配置 1. 創建項目 2. src目錄調整 ①刪除一些初始化的默認文件 清空assets、components、store、views文件夾下的內容&#xff1b; ②修改剩余代碼內容 router/index.js import …

一個程序員的牢獄生涯(44)詢問

星期一 詢 問 在號子里開始了下午坐班的時候,過道內的大鐵柵欄被管教打開,我聽到開鎖的聲音后,心里變得激動起來。盼望著腳步聲能停在我們的號子門口,然后打開鐵門,喊一聲“眼鏡,出來!”。 通道內這次進來的是秦所,但他并沒有在我們號子門口停留,只是在走過的時候,低…

華為昇騰310 ATC模型轉換工具安裝

參考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

js知識點之閉包

閉包 什么是閉包 閉包&#xff0c;是 JavaScript 中一個非常重要的知識點&#xff0c;也是我們前端面試中較高幾率被問到的知識點之一。 打開《JavaScript 高級程序設計》和《 JavaScript 權威指南》&#xff0c;會發現里面針對閉包的解釋各執一詞&#xff0c;在網絡上搜索關…

Java中如何指定jdk的版本運行jar包

你的jdk安裝的目錄\bin\java -jar 你的jar包名字.jar 這是我的代碼示例 C:\Users\86177\.jdks\corretto-17.0.10\bin\java -jar big_event_study2-0.0.1- SNAPSHOT.jar

23種設計模式之一— — — —裝飾模式詳細介紹與講解

裝飾模式詳細講解 一、定義二、裝飾模式結構核心思想模式角色模式的UML類圖應用場景模式優點模式缺點 實例演示圖示代碼演示運行結果 一、定義 裝飾模式&#xff08;別名&#xff1a;包裝器&#xff09; 裝飾模式&#xff08;Decorator Pattern&#xff09;是結構型的設計模式…

LeetCode 每日一題 數學篇 2651.計算列車到站時間

給你一個正整數 arrivalTime 表示列車正點到站的時間&#xff08;單位&#xff1a;小時&#xff09;&#xff0c;另給你一個正整數 delayedTime 表示列車延誤的小時數。 返回列車實際到站的時間。 注意&#xff0c;該問題中的時間采用 24 小時制。 int findDelayedArrivalTi…

學業輔導導師:文心一言智能體詳細介紹和開發

一、前言 本期題目 開發方向&#xff1a;學習成長類 解讀&#xff1a; AI技術在學習成長方向的應用正日益增多&#xff0c;本期賽題需圍繞該方向開發智能體包括但不限于:作文輔導助手、個性化學習助手、考試助手、各垂類教育內容專家等 二、我的智能體&#xff1a;學業輔導…

macbook中foxmail的通訊錄遷移

之前windows中用習慣了foxmail,換成macbook后,還是沿用foxmail。使用一段時間后,確實受不了foxmail的不便:1、版本比較低1.5.6,很多windows新版的功能都沒有;2、動不動莫名其妙崩潰,寫了半天的郵件,點擊發送就直接崩了,又得重新寫。 忍耐了幾個月后,下定決心換成網易…

2.10 mysql設置遠程訪問權限

2.10 mysql設置遠程訪問權限 目錄1. 管理員運行mysql命令窗口2. 使用 root 用戶重新登錄 MySQL3. 修改用戶權限4. 修改mysql安裝目錄下的my.ini 目錄 說明&#xff1a; Mysql8.0 設置遠程訪問權限 一、Mysql8.0 設置遠程訪問權限 1. 管理員運行mysql命令窗口 2. 使用 root 用…

matlab安裝及破解

一、如何下載 軟件下載鏈接&#xff0c;密碼&#xff1a;98ai 本來我想自己生成一個永久百度網盤鏈接的&#xff0c;但是&#xff1a; 等不住了&#xff0c;所以大家就用上面的鏈接吧。 二、下載花絮 百度網盤下載速度比上載速度還慢&#xff0c;我給充了個會員&#xff0c…

【1】:計算機圖形學概述

從技術角度講&#xff0c;什么是好的畫面呢&#xff1f; 看這個畫面是不是足夠亮&#xff0c;也就是全局光照做的夠好 什么是計算機圖形學? 使用計算機合成和操作可視信息。 應用場景 Video Games 游戲 Movie 電影 Animation 動畫 Design 設計&#xff1a;CAD等軟件相關…

修復CentOS 6.6服務器YUM和RPM功能異常的技術實踐20240523

修復CentOS 6.6服務器YUM和RPM功能異常的技術實踐 引言 在復雜的生產環境中&#xff0c;服務器的穩定性至關重要。近期&#xff0c;我們遇到了一臺CentOS 6.6服務器在執行yum update -y時被中斷&#xff0c;導致YUM和RPM功能異常的問題。本文將詳細介紹問題的診斷、解決過程以及…

java中變量名單獨占用一個空間嗎,為什么能直接使用變量名而不需要給java地址,變量名和地址之間有什么關系

在 Java 中&#xff0c;變量名不單獨占用存儲空間&#xff0c;但它們確實在內存中有對應的地址。為了理解這一點&#xff0c;我們需要深入了解變量名和內存地址之間的關系。 變量名與內存地址 變量名的作用: 在 Java 程序中&#xff0c;變量名是用于引用存儲在內存中的數據的…

git顯示提交次數

git shortlog 是一個特殊版本的 git log 命令&#xff0c;旨在創建發布公告。它將每個提交按作者分組&#xff0c;并顯示每個提交消息的第一行。這是一種快速查看不同作者在項目中的貢獻的方式。 以下是 git shortlog 的一些常用參數&#xff1a; -n 或 --numbered&#xff1…