日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 网络爬虫 抓取“北京标准时间“ 网页请求

發(fā)布時間:2023/12/10 C# 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 网络爬虫 抓取“北京标准时间“ 网页请求 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

很多時候需要使用到北京時間,例如一些簽到功能 過了24小時就可以簽到一次 如果直接獲取用戶本地時間 因為本機時間是可以自行修改的 這就造成非常大的BUG 當然也可以使用服務器本機的時間 看個人需求

效果圖:


在C#中已經(jīng)封裝好了兩個類

簡單介紹下

HttpWebRequest -主要用于模擬客戶端發(fā)送網(wǎng)絡請求

HttpWebResponse -用來接收服務器返回的數(shù)據(jù)

演示網(wǎng)站:北京時間
請求多了也并不會限制訪問

分析網(wǎng)頁源代碼:

上圖看出 時間在中上部

name=“description” content="天氣網(wǎng)時差頻道(time.tianqi.com)介紹中國北京時間,北京時間在線校準,北京現(xiàn)在時間:2021-09-18 -20:15:41。查世界各大城市時差,知最新時間,來天氣網(wǎng)時差頻道。

而在時間的兩邊有一個" : " 和一個 " 。 " 符號 且只有一個
時間剛剛好在中間 可以以這兩個符號為終點

代碼:

定義URL(也就是目標地址)

string url = "http://time.tianqi.com/";

也可以直接在 HttpWebRequest 的括號參數(shù)填寫都是字符串類型

發(fā)起請求:

HttpWebRequest a = (HttpWebRequest)WebRequest.Create(url);

響應請求:

HttpWebResponse b = (HttpWebResponse)a.GetResponse();

返回的網(wǎng)頁源代碼 需要一個“流”進行接收

返回流:

using (Stream s = b.GetResponseStream()) using (StreamReader r = new StreamReader(s, Encoding.UTF8))

StreamReaad-因流不能直接轉成字符,所以需要SreamRead進行轉換
第1個參數(shù):流
第2個參數(shù):字符編碼 如出現(xiàn)亂碼,看網(wǎng)頁編碼是否和你程序編碼對應

using-因為文件流會消耗大量的資源 而文件流比較特殊 并不能被GC(垃圾回收) 給釋放 必須手動關閉 也可以使用using 關鍵字進行自動釋放

字符串分割:
因為只需要他的時間 返回的一大堆不需要的數(shù)據(jù) 使用就需要進行分割 把不要的字符全部過濾 可以使用 字符串的方法 或者 正則表達式 因為正則表達式不好定義 所以使用的字符串的方法

C#字符串的方法

代碼:

string str = r.ReadToEnd(); //讀取文件流賦值給字符串 int n = str.IndexOf(':');//找 : 在的第幾個字str = str.Substring(n + 1);// 從那里分割 因為是0開始的使用所以+1 不然不完整 n = str.IndexOf('。'); // 。 在第幾個字符str = str.Substring(0, n); //0開始 一直到 n個 也就是 “。”Console.WriteLine(str); //輸出

完整代碼:

string url = "http://time.tianqi.com/"; HttpWebRequest a = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse b = (HttpWebResponse)a.GetResponse();using (Stream s = b.GetResponseStream()) { using (StreamReader r = new StreamReader(s, Encoding.UTF8)){string str = r.ReadToEnd(); int n = str.IndexOf(':');str = str.Substring(n + 1);n = str.IndexOf('。');str = str.Substring(0, n);Console.WriteLine(str);}}Console.Read();

還是挺簡單的 只有簡單的幾行

效果圖:

純手打,點個贊唄~

總結

以上是生活随笔為你收集整理的C# 网络爬虫 抓取“北京标准时间“ 网页请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。