1. 程式人生 > >爬蟲之C#實現的幾種方式

爬蟲之C#實現的幾種方式

  • 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標頭的值。