【问题标题】:Pass string of HTML page and scrape with HtmlAgilityPack传递 HTML 页面字符串并使用 HtmlAgilityPack 抓取
【发布时间】:2023-03-27 18:35:01
【问题描述】:

为什么会出现这个错误?

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

【问题讨论】:

  • @minitech 如果你删除了 C# 标签,你不必为 VB.NET 格式化
  • @jcolebrand:我知道,但c# 很重要,它让人们知道 C# 答案是可以接受的。
  • @minitech 你怎么看?这是.NET,但它仍然需要针对原始问题的VB.NET进行定制。大多数编写 .NET 代码的人都被一种语言迷住了,不知道如何在两者之间进行转换(来源:经验)
  • @jcolebrand:嗯,我认为这就是标签的用途。这就是为什么知道标签问题的人c#vb.net :)
  • 我认为它适用于两者

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


【解决方案1】:

使用LoadHtml 代替Load

htmlDoc.LoadHtml(pageSource)

See also the source.

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
相关资源
最近更新 更多