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 等極適合開發爬蟲。後續章節將深入多線程架構與完成偵測。