C# 採集頁面

來源:互聯網
上載者:User

標籤:blog   http   io   ar   for   sp   檔案   資料   div   

首先大家需要清楚一點的是:任何網站的頁面,無論是php、jsp、aspx這些動態網頁面還是用背景程式產生的靜態頁面都是可以在瀏覽器中查看其HTML源檔案的。

所以當你要開發資料擷取程式的時候,你必須先對你試圖採集的網站的前台頁面結構(HTML)要有所瞭解。

當你對要採集資料的網站裡的HTML源檔案內容十分熟悉之後,剩下程式上的事情就很好辦了。因為C#對Web網站進行資料擷取其原理就在於“把你要採集的頁面HTML源檔案下載下來,分析其中HTML代碼然後抓取你需要的資料,最後將這些資料儲存到本地檔案”。

基本流程如所示:

 

首先引用System.Net命名空間

using System.Net;
此外還需引用

using System.Text;
using System.IO;
 引用完後執行個體化一個WebClient對象

private WebClient wc = new WebClient();
 調用DownloadData方法將指定網頁的源檔案下載一組BYTE資料,然後將BYTE數組轉為字串。

//下載頁面源檔案並將其轉換成UTF8編碼格式的STRING
string mainData = Encoding.UTF8.GetString(wc.DownloadData(string.Format("你要採集的網頁地址")));
 或則也可以調用DownloadFile方法,先將源檔案下載到本地然後再讀取其字串

//下載網頁源檔案到本地
wc.DownloadFile("你要採集的網頁URL","儲存源檔案的本地檔案路徑");
//讀取下載下來的源檔案HTML格式的字串
string mainData = File.ReadAllText("儲存源檔案的本地檔案路徑",Encoding.UTF8);
有了網頁HTML格式字串,就可以對網頁分析採集並抓取你所需要的內容了。

 

2.頁面分析採集

頁面分析就是要將網頁源檔案中某個特定或是唯一的字元(串)作為抓取點,以這個抓取點作為開端來截取你想要的頁面上的資料。

以部落格園為列,比方說我要採集部落格園首頁上列出來的文章的標題和連結,就必須以"<a class="titlelnk" href=""作為抓取點,以此展開來抓取文章的標題和連結。

 

CODE:

//以"<a class="titlelnk" href=""作為抓取點開始採集
mainData=mainData.Substring(mainData.IndexOf("<a class="titlelnk" href="") + 26);

//擷取文章頁面的連結地址
string articleAddr = mainData.Substring(0,mainData.IndexOf("""));

//擷取文章標題
string articleTitle = mainData.Substring(mainData.IndexOf("target="_blank">") + 16,
                                               mainData.IndexOf("</a>") - mainData.IndexOf("target="_blank">") - 16);
 

 注意:當你要採集的網頁前台HTML格式變了之後,作為抓取點的字元竄也因做相應地改變,否則是採集不到任何東西的

 

3.資料儲存

當你把需要的資料從網頁截取下來後,將資料在程式中稍加整理儲存到本地檔案(或插入到自己本地的資料庫中)。這樣整個採集工作就算搞一段落了。

//輸出資料到本地檔案
File.AppendAllText(CreateFolderIfNot(Settings.Default.OutPath) + articleTitle + ".txt",
                                       articleData,
                                       Encoding.UTF8);

 

 

C# 採集頁面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.