爬蟲之C#實現的幾種方式
阿新 • • 發佈:2019-02-05
- HttpWebRequest/HttpWebResonse
- WebBrowser
- com元件
第一種方式HttpWebRequest/HttpWebResonse
這種方式最常見也可能是最常用的。使用方式大概如下:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
HttpWebResponse response =(HttpWebResponse) request.GetResponse();
Stream receviceStream = response.GetResponseStream ();
StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("utf-8"));
string strHTML = readerOfStream.ReadToEnd();
readerOfStream.Close();
receviceStream.Close();
response.Close();
這裡寫的是普通的呼叫方式,並沒有涉及到Cookie以及相關表單處理
第二種方式WebBrowser
這種方式,我主要是用用來處理 網頁中的元素的點選事件(如 樹形結構)
第三種方式com元件
第三種方式也是最近在嘗試的一種方式 就是使用微軟的com元件,進行爬取和開發。為什麼寫第三種方式,是因為在有些網站的表單提交、cookie 處理不是很方便在第一種和第二種方式都處理不方便的,不妨試一下。
當時的想法就是既然通過程式碼需要記錄cookie 傳遞cookie,為什麼不直接使用瀏覽器本身的cookie呢。
相關com引用
Microsoft HTML Object Library
Microsoft Internet Controls
相關處理API
Navigate (URL [, Flags] [, TargetFrameName] [, PostData] [, Headers])
跳轉到指定的URL。是以下常量或值之一:navOpenInNewWindow = 1 navNoHistory = 2 navNoReadFromCache = 4 navNoWriteToCache = 8 TargetFrameName是一個字串,用於指定將顯示結果的框架的名稱。PostData是使用HTTP post事務傳送的資料。標題是指定要傳送的HTTP標頭的值。