使用c#的HTML Agility包

时间:2015-06-03 09:58:39

标签: c# html html5 parsing html-agility-pack

c#c​​ode:`

var node = new HtmlWeb();

                var doc = node.Load("http://ask.fm/");

                HtmlNode ournode = doc.DocumentNode.SelectSingleNode("//div[@id='heads']")

                textBox1.Text=ournode.InnerHtml;

` HTML代码:

//< div id="heads" >

      <a href="/sudenur3434" data-rlt-aid="welcome_head"><img alt="" class="head" id="face_30132803" src="http://img3.ask.fm/assets2/103/548/655/872/thumb_tiny/IMG_20150513_192250.jpg" /></a>

      <a href="/leylaulucay" data-rlt-aid="welcome_head"><img alt="" class="head" id="face_56578735" src="http://img1.ask.fm/assets2/091/364/883/712/thumb_tiny/11094711_919135961470973_149663457_njpg720960png1280963.png" /></a>

我希望在文本框中看到以下内容

/ sudenur3434

/ leylaulucay

3 个答案:

答案 0 :(得分:0)

我在您的代码中添加了一行:

dcapp myapp run "python manage.py syncdb"

这会让你获得href属性。只需使用相同的代码获取其他节点的href值,然后将它们添加到文本框

答案 1 :(得分:0)

由于文本通常用于一个内衬,我给你一个例子,它只是在VS的直接输出窗口中写下所有链接。

如果您使用例如ListBox而不是文本框,您可以通过例如替换Debug.Print。 ListBox1.Items.Add(href.Value)

这里将为您提供div id =“heads”中所有孩子的所有href网址:

var site = new HtmlWeb();
var htmldoc = site.Load("http://ask.fm/");

var headDiv = htmldoc.DocumentNode.SelectSingleNode("//div[@id='heads']");
if (headDiv != null)
{
    var anchors = headDiv.SelectNodes("a");
    foreach (HtmlNode aNode in anchors)
    {
        var href = aNode.Attributes.AttributesWithName("href").FirstOrDefault();
        if (href != null)
            Debug.Print(href.Value);
    }
}

答案 2 :(得分:-1)

< div id="heads" >

  <a href="/sudenur3434" data-rlt-aid="welcome_head"><img alt="" class="head" id="face_30132803" src="http://img3.ask.fm/assets2/103/548/655/872/thumb_tiny/IMG_20150513_192250.jpg" /></a>

  <a href="/leylaulucay" data-rlt-aid="welcome_head"><img alt="" class="head" id="face_5

如何在文本框中灵活打包解析