传递HTML页面的字符串并使用HtmlAgilityPack进行刮擦

时间:2012-07-21 04:29:10

标签: c# vb.net html-agility-pack

为什么我会收到此错误?

  

“路径中的非法字符”htmlDoc.Load(pageSource)

pageSource是HTML页面的字符串变量。我需要将页面源作为字符串传递,而不是作为文件而不是URL。我该怎么做?

Dim ids As New List(Of String)()
Dim pageSource = getHtml(url)

Dim htmlDoc As HtmlDocument = New HtmlDocument()

htmlDoc.OptionFixNestedTags = True


htmlDoc.Load(pageSource)


Dim s As HtmlNodeCollection = htmlDoc.DocumentNode.SelectNodes("//div/@id")

For Each div As HtmlNode In s
    ids.Add(div.Id)
Next

1 个答案:

答案 0 :(得分:9)

使用LoadHtml代替Load

htmlDoc.LoadHtml(pageSource)

See also the source.