从HtmlAgilityPack文档规范化字符串

时间:2016-03-07 18:30:46

标签: vb.net string html-agility-pack

我正在尝试使用此代码使用vb.netHtmlAgilityPack获取网页:

Dim mWPage As New HtmlAgilityPack.HtmlDocument
Dim wC As New WebClient()
mWPage.Load(wC.OpenRead(mUrl))

我的问题是从表中获取文本但是,当我提取InnerText时,我得到这样的结果:

&#77;o&#100;if&#105;ca&#116;<!--span-->i&#32; da&#116;i

而不是(请注意,我写了相同的字符串,并在其下方正确显示):

  

Modificati dati

我尝试使用答案here,但在这种情况下不起作用(或者我无法使其有效)

当我更改“User-Agent”时,我注意到内容发生了变化,因此我尝试了各种“User-Agent”,但我从未得到过完美的文本。

所以我的问题是:
我可以使用答案中指出的代码来解决问题吗? 如果没有,我可以使用正确的“用户代理”获得完美的文本吗? 如果是这样,我怎样才能找到合适的“用户代理”? 如果没有,我该如何修复收到的字符串?

1 个答案:

答案 0 :(得分:0)

基于新用户代理的服务器响应完全取决于服务器,因此我们无法预测哪一个会产生您正在寻找的响应。

但是......您将能够使用HttpUtility.HtmlDecode方法摆脱已编码的HTML并将其转换为您正在寻找的字符串。

要过滤掉HTML评论,您可能需要更改您正在使用的XPath。如果您追加//text(),则只应获得与表达式其余部分匹配的文本元素。