首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

打造 C# 爬蟲蜘蛛程式 (一):HTML 解析器與頁面處理基礎

     編輯:關於C語言

關鍵問題概覽

  1. HTML 解析:需解析器提取連結。
  2. 頁面處理:下載、儲存、進一步分析。
  3. 多線程:高效爬取核心。
  4. 完成偵測:多線程環境下非平凡問題。

HTML 解析器 ParseHTML 使用


ParseHTML parser = new ParseHTML();
parser.Source = "...Hello World...";

while (!parser.Eof())
{
    char ch = parser.Parse(); // 回傳非標籤字元,遇標籤回傳 0
    if (ch == 0)
    {
        HtmlTag tag = parser.GetTag(); // 取得標籤物件
        Attribute href = tag["HREF"];  // 索引器提取屬性
        string link = href.Value;      // 取得連結
    }
}

頁面下載與類型判斷


HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();

if (!resp.ContentType.ToLower().StartsWith("text/"))
{
    SaveBinaryFile(resp); // 直接存檔,不解析連結
    return null;
}
// 文字內容讀取...

文字內容讀取與儲存


using (StreamReader reader = new StreamReader(stream))
{
    string line, buffer = "";
    while ((line = reader.ReadLine()) != null) buffer += line + "\r\n";
}
SaveTextFile(buffer);
return buffer; // 供後續解析

C# 內建 HttpWebRequest、ThreadPool、Monitor 等極適合開發爬蟲。後續章節將深入多線程架構與完成偵測。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved