从html页面中提取内容

时间:2012-07-11 05:38:44

标签: c# c#-4.0

我正在尝试在html页面中使用 id job_title1提取div标签内的内容。我正在使用htmlagilitypack来获取数据。这是我的代码

        var obj = new HtmlWeb();
        var document = obj.Load("url of website ");

        var bold = document.DocumentNode.SelectNodes("//div[@class='job_title1']");

        foreach (var i in document.DocumentNode.SelectNodes("//div[@class='job_title1']"))
        {
            Response.Write(i.InnerHtml);
        }

当我试图运行此代码时,我在foreach中收到错误,说对象引用未设置为对象的实例。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您说“带有 id job_title1的div标签”,xpath不应该是:

document.DocumentNode.SelectNodes("//div[@id='job_title1']")

答案 1 :(得分:0)

像这样检查if null

var nodes = document.DocumentNode.SelectNodes("//div[@class='job_title1']");

if(nodes != null)
    foreach (var i in document.DocumentNode.SelectNodes("//div[@class='job_title1']"
    ...

修改:使用\"代替'

var obj = new HtmlWeb();
var document = obj.Load("url of website ");

var bold = document.DocumentNode.SelectNodes("//div[@class=\"job_title1\"]");

if(bold!= null)
    foreach (var i in bold)
    {
        Response.Write(i.InnerHtml);
    }