2008年3月26日 星期三

取得網頁的HTML原始碼(3.26)

圖一
圖二
圖三


案例:
在Google Patents搜尋(圖一)中,鍵入:「Patent:XXXXXX」,可以取得與此相關的專利(列表)(圖二)。
但目前有個需求是希望在自己的網頁中,建立一個UserControl,來取代「Google Patents」(圖一)的畫面
此UserControl裡放置了「TextBox」、「Button」各一個,希望能在使用者輸入「專利號」
就可以馬上連結到該專利的網頁(圖三),而非「一個列表(圖二)」。


問題來了,要連到專利的網頁(圖三),必須要知道該專利的id(由google的url得知)
但是,id是存在google他們的資料庫呀,我們如何知道呢?


其實,在列表中的超連結,已有專利的id可見,所以只要利用「WebRequest
攔截列表的html,再找出該專利的id,這樣就可以自己串連到專利網頁的URL了。




// 設定request
System.Net.WebRequest request = System.Net.WebRequest.Create(pageUrl);
//設定TimeOut的時間(怕網路速度過慢,資料不完全)
request.Timeout = timeoutSeconds * 1000;

// 從request接收資料
System.Net.WebResponse response =request.GetResponse();
System.IO.Stream streamReceive = response.GetResponseStream(); System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8"); System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, System.Text.Encoding.Default);

// 取得原始碼
String HTML =streamRead.ReadToEnd();

沒有留言: