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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

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

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

很多時(shí)候需要使用到北京時(shí)間,例如一些簽到功能 過(guò)了24小時(shí)就可以簽到一次 如果直接獲取用戶(hù)本地時(shí)間 因?yàn)楸緳C(jī)時(shí)間是可以自行修改的 這就造成非常大的BUG 當(dāng)然也可以使用服務(wù)器本機(jī)的時(shí)間 看個(gè)人需求

效果圖:


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

簡(jiǎn)單介紹下

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

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

演示網(wǎng)站:北京時(shí)間
請(qǐng)求多了也并不會(huì)限制訪問(wèn)

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

上圖看出 時(shí)間在中上部

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

而在時(shí)間的兩邊有一個(gè)" : " 和一個(gè) " 。 " 符號(hào) 且只有一個(gè)
時(shí)間剛剛好在中間 可以以這兩個(gè)符號(hào)為終點(diǎn)

代碼:

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

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

也可以直接在 HttpWebRequest 的括號(hào)參數(shù)填寫(xiě)都是字符串類(lèi)型

發(fā)起請(qǐng)求:

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

響應(yīng)請(qǐng)求:

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

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

返回流:

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

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

using-因?yàn)槲募鲿?huì)消耗大量的資源 而文件流比較特殊 并不能被GC(垃圾回收) 給釋放 必須手動(dòng)關(guān)閉 也可以使用using 關(guān)鍵字進(jìn)行自動(dòng)釋放

字符串分割:
因?yàn)橹恍枰臅r(shí)間 返回的一大堆不需要的數(shù)據(jù) 使用就需要進(jìn)行分割 把不要的字符全部過(guò)濾 可以使用 字符串的方法 或者 正則表達(dá)式 因?yàn)檎齽t表達(dá)式不好定義 所以使用的字符串的方法

C#字符串的方法

代碼:

string str = r.ReadToEnd(); //讀取文件流賦值給字符串 int n = str.IndexOf(':');//找 : 在的第幾個(gè)字str = str.Substring(n + 1);// 從那里分割 因?yàn)槭?開(kāi)始的使用所以+1 不然不完整 n = str.IndexOf('。'); // 。 在第幾個(gè)字符str = str.Substring(0, n); //0開(kāi)始 一直到 n個(gè) 也就是 “。”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();

還是挺簡(jiǎn)單的 只有簡(jiǎn)單的幾行

效果圖:

純手打,點(diǎn)個(gè)贊唄~

總結(jié)

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

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