創作內容

8 GP

【C#】尋找網頁中的特定字串

作者:落葉無聲│2012-07-23 17:49:35│巴幣:64│人氣:9863
類型: C#學習筆記

目的: 尋找網頁中的特定字串.

參考資料: MSDN Get HTML code from a website C#



說明

讓上一個滙率程式在使用上更便利, 將網路上匯率資料直接帶進來程式中, 使用者則不需要每次進入程式時, 還需要去其它網頁查看匯率.

這個範例選擇的是Yahoo換算匯率網頁. 而我需要的資料是下圖紅框中的匯率29.968帶入程式.



程式碼

//將要取得HTML原如碼的網頁放在WebRequest.Create(@”網址” )
WebRequest myRequest = WebRequest.Create(@"http://tw.money.yahoo.com/currency_exc_result?amt=1&from=USD&to=TWD");

//Method
選擇GET
myRequest.Method= "GET";

//取得WebRequest的回覆
WebResponse myResponse =myRequest.GetResponse();

//Streamreader讀取回覆
StreamReader sr = new StreamReader(myResponse.GetResponseStream());

//將全文轉成string
string result =sr.ReadToEnd();

//關掉StreamReader
sr.Close();

//關掉WebResponse
myResponse.Close();

//搜尋頭尾關鍵字, 搜尋方法見後記(1)
int first =result.IndexOf("美元 = <em>");
int last =result.LastIndexOf("</em> 新台幣");
 
//減去頭尾不要的字元或數字, 並將結果轉為string. 計算方式見後記(2)
string HTMLCut =result.Substring(first + 9, last - first - 9);
txtRate.Text = HTMLCut;



後記

(1) 取得網頁原始碼比較容易的方法(Firefox舉例)

先將想要的資料反白


點選右鍵 > 檢視選取範圍原始碼


開啓原始碼頁面, 被選取的範圍也會是反白效果呈現


(2) 如何計算

假設以下字串, 你所想要的資料為1234

"AAAAA1234BBBB"

則搜尋為. . .
int first =result.IndexOf("AAAAA");
int last =result.LastIndexOf("BBBB");
string HTMLCut =result.Substring(first + 5, last - first - 4);

AAAAA的第一個字元為0, 所以要+5, Substring的開頭才會是1234的1.
BBBB的最得一個字則要-4, Substring的結尾才會是1234的4.

PS: 空格也算一格.

在看回程式中的範例則頭+9尾-9就能取得想要的字串了.
string HTMLCut =result.Substring(first + 9, last - first - 9);




引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1673565
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:C#|C#程式|程式設計|匯兌|程式

留言共 2 篇留言

羽翼
謝謝,我剛好需要這個功能

12-19 00:45

落葉無聲
謝謝, 有空多來交流.12-19 14:49
羽翼
才剛進門而已,我還只能仰望前輩的身影啦 "XD~
和網路相關的還在鬼打牆中 "XD~

12-19 22:50

落葉無聲
不敢 @@ 我也是趁著工作閒瑕時練習, 也是學習階段的~12-24 11:37
我要留言提醒:您尚未登入,請先登入再留言

8喜歡★rovingleaves 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【C#】Properti... 後一篇:【C#】如何確認網路是否...

追蹤私訊切換新版閱覽

作品資料夾

blackotori大家
小屋繪圖有更新,歡迎大家來小屋看看看更多我要大聲說昨天20:50


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】