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

C# 2.0 實作網路蜘蛛 WebSpider(六):GetHref 正則擷取 href 三種格式、GetUrl 提取純 URL、GetFullUrl 相對轉絕對完整鏈

     編輯:關於C語言

GetHref:正則擷取三種 href 格式


private String getHref(string a)
{
    try
    {
        string p = @"href\s*=\s*('[^']*'|""[^""]*""|\S+\s+)";
        MatchCollection matches = Regex.Matches(a, p,
            RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
        foreach (Match m in matches) return m.Value;
        return null;
    }
    catch (Exception e) { throw e; }
}

三種格式:

  1. href="https://..."
  2. href='https://...'
  3. href=https://...

GetUrl:從 href 提取純 URL


private String getUrl(string href)
{
    try
    {
        if (href == null) return href;
        int n = href.IndexOf('=');
        String s = href.Substring(n + 1);
        int begin = 0, end = 0;
        string sign = "";

        if (s.Contains("\"")) sign = "\"";
        else if (s.Contains("'")) sign = "'";
        else return getFullUrl(s.Trim());

        begin = s.IndexOf(sign);
        end = s.LastIndexOf(sign);
        return getFullUrl(s.Substring(begin + 1, end - begin - 1).Trim());
    }
    catch (Exception e) { throw e; }
}

再透過 getFullUrl 處理相對路徑(見上篇)。

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