網上很多內容采集工具,今天就自己試着寫一個,發現C#可以輕松的抓去網頁的內容,進而通過正則來分離出自己感興趣的數據。下面是抓去網頁內容的代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Net; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace Web { /// <summary> /// 公共方法類 /// </summary> public class WebHandler { /// <summary> /// 獲取網頁的HTML碼 /// </summary> /// <param name="url">鏈接地址</param> /// <param name="encoding">編碼類型</param> /// <returns></returns> public static string GetHtmlStr(string url, string encoding) { string htmlStr = ""; try { if (!String.IsNullOrEmpty(url)) { WebRequest request = WebRequest.Create(url); //實例化WebRequest對象 WebResponse response = request.GetResponse(); //創建WebResponse對象 Stream datastream = response.GetResponseStream(); //創建流對象 Encoding ec = Encoding.Default; if (encoding == "UTF8") { ec = Encoding.UTF8; } else if (encoding == "Default") { ec = Encoding.Default; } StreamReader reader = new StreamReader(datastream, ec); htmlStr = reader.ReadToEnd(); //讀取網頁內容 reader.Close(); datastream.Close(); response.Close(); } } catch { } return htmlStr; } } }
這個方法可以獲取網頁的HTML內容,有了HTML我們就可以通過正則來抓去自己想要的內容了。。。
