C#解析HTML源碼

來源:互聯網
上載者:User

標籤:

剛做了一個小任務,需要抓取其他網站的部分資料,這裡就順便介紹使用Winista.Text.HtmlParser這個類庫如何解析HTML並抓取部分資料

1、擷取指定網站的頁面源碼

string url = "http://www.100njz.com/price/list/p--------1.html";System.Net.WebClient aWebClient = new System.Net.WebClient();aWebClient.Encoding = System.Text.Encoding.Default;string html = aWebClient.DownloadString(url);

2、擷取到源碼後,解析並擷取指定的節點資料,這裡示範的是擷取id="articleList"的div

Lexer lexer = new Lexer(html);        Parser parser = new Parser(lexer);        NodeFilter filter = new NodeClassFilter(typeof(Winista.Text.HtmlParser.Tags.Div));        NodeList nodeList = parser.Parse(filter);        ITag t;        if (nodeList.Count == 0)            Response.Write("沒有符合要求的節點");        else        {            for (int i = 0; i < nodeList.Count; i++)            {                t = getTag(nodeList[i]);                if (t != null && t.GetAttribute("id") == "articleList")                {                    NodeFilter filter2 = new NodeClassFilter(typeof(Winista.Text.HtmlParser.Tags.LinkTag));                    Response.Write(nodeList[i].ToHtml());                }            }        }
private ITag getTag(INode node)    {        if (node == null)            return null;        return node is Div ? node as Div : null;    }

 


 

C#解析HTML源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.