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

C# 2.0 實作網路蜘蛛 WebSpider(七):GetFullUrl 相對轉絕對路徑、ProcessPattern 正則過濾不想下載的 URL、Html 本地暫存分析

     編輯:關於C語言

GetFullUrl:相對路徑轉絕對路徑


private String getFullUrl(string url)
{
    try
    {
        if (url == null) return url;
        if (processPattern(url)) return null; // 過濾不想下載

        if (url.ToLower().StartsWith("https://") || url.ToLower().StartsWith("https://"))
            return url;

        Uri parentUri = new Uri(parentUrl);
        string port = parentUri.IsDefaultPort ? "" : ":" + parentUri.Port;

        if (url.StartsWith("/")) // 根相對路徑
            return parentUri.Scheme + "://" + parentUri.Host + port + url;
        else // 相對路徑
        {
            string s = parentUri.LocalPath.Substring(0, parentUri.LocalPath.LastIndexOf("/"));
            return parentUri.Scheme + "://" + parentUri.Host + port + s + "/" + url;
        }
    }
    catch (Exception e) { throw e; }
}

ProcessPattern:正則過濾


private bool processPattern(string url)
{
    foreach (string p in patterns)
    {
        if (Regex.IsMatch(url, p, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture)
            && !p.Equals(""))
            return true;
    }
    return false;
}

Html 分析流程

ParseResource 先將 HTML 下載到執行緒專屬目錄,再用 FileStream 讀取分析。其他實作請參考原始碼。

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