程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#抓取網頁數據 解析題目描寫圖片等信息 去除HTML標簽

C#抓取網頁數據 解析題目描寫圖片等信息 去除HTML標簽

編輯:C#入門知識

C#抓取網頁數據 解析題目描寫圖片等信息 去除HTML標簽。本站提示廣大學習愛好者:(C#抓取網頁數據 解析題目描寫圖片等信息 去除HTML標簽)文章只能為提供參考,不一定能成為您想要的結果。以下是C#抓取網頁數據 解析題目描寫圖片等信息 去除HTML標簽正文


1、起首將網頁內容全部抓取上去,數據放在byte[]中(收集上傳輸時情勢是byte),進一步轉化為String,以便於對其操作,實例以下:


private static string GetPageData(string url)
{
    if (url == null || url.Trim() == "")
        return null;
    WebClient wc = new WebClient();
    wc.Credentials = CredentialCache.DefaultCredentials;
    Byte[] pageData = wc.DownloadData(url);
    return Encoding.Default.GetString(pageData);//.ASCII.GetString
}

2、獲得了數據的字符串情勢,然後可以對網頁停止解析了(其實就是對字符串的各類操作和正則表達式的運用):

經常使用的的解析還有以下幾種:

1.獲得題目


Match TitleMatch = Regex.Match(strResponse, "<title>([^<]*)</title>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
title = TitleMatch.Groups[1].Value;

2.獲得描寫信息


Match Desc = Regex.Match(strResponse, "<meta name=\"DESCRIPTION\" content=\"([^<]*)\">", RegexOptions.IgnoreCase | RegexOptions.Multiline);
strdesc = Desc.Groups[1].Value;

3.獲得圖片


public class HtmlHelper
{
    /// <summary>
    /// HTML中提取圖片地址
    /// </summary>
    public static List<string> PickupImgUrl(string html)
    {
        Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
        MatchCollection matches = regImg.Matches(html);
        List<string> lstImg = new List<string>();
        foreach (Match match in matches)
        {
            lstImg.Add(match.Groups["imgUrl"].Value);
        }
        return lstImg;
    }
    /// <summary>
    /// HTML中提取圖片地址
    /// </summary>
    public static string PickupImgUrlFirst(string html)
    {
        List<string> lstImg = PickupImgUrl(html);
        return lstImg.Count == 0 ? string.Empty : lstImg[0];
    }
}

4.去除Html標簽


private string StripHtml(string strHtml)
{
    Regex objRegExp = new Regex("<(.|\n)+?>");
    string strOutput = objRegExp.WordStr(strHtml, "");
    strOutput = strOutput.WordStr("<", "<");
    strOutput = strOutput.WordStr(">", ">");
    return strOutput;
}

有些破例會使得去除不清潔,所以建議持續兩次轉化。如許將Html標簽轉化為了空格。太多持續的空格會影響以後對字符串的操作。所以再參加如許的語句:


//把一切空格變成一個空格
Regex r = new Regex(@"\s+");
wordsOnly = r.WordStr(strResponse, " ");
wordsOnly.Trim();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved