规范化 HtmlAgilityPack 文档中的字符串
Normalize string from HtmlAgilityPack document
我正在尝试通过以下代码使用 vb.net
和 HtmlAgilityPack
获取网页:
Dim mWPage As New HtmlAgilityPack.HtmlDocument
Dim wC As New WebClient()
mWPage.Load(wC.OpenRead(mUrl))
我的问题是从 table 中获取文本,但是,当我提取 InnerText 时,我得到如下信息:
Modificat<!--span-->i  dati
而不是(请注意,我写了相同的字符串,下面显示正确):
Modificati dati
我试过使用答案 但在这种情况下它不起作用(或者我无法让它起作用)
我注意到当我改变 "User-Agent" 时内容会改变,所以我尝试了各种 "User-Agent" 但我从来没有得到一个完美的文本。
所以我的问题是:
我可以使用答案中指示的代码来解决问题吗?
如果没有,我可以使用正确的"User-Agent"得到一个完美的文本吗?
如果是这样,我怎样才能找到正确的"User-Agent"?
如果没有,我该如何修复接收到的字符串?
基于新用户代理的服务器响应完全取决于服务器,因此我们无法预测哪一个会产生您正在寻找的响应。
但是...您将能够使用 HttpUtility.HtmlDecode
方法摆脱编码的 HTML 并将其转换为您要查找的字符串。
要过滤掉 HTML 注释,您可能需要更改正在使用的 XPath。如果您追加 //text()
,您应该只获得与表达式的其余部分匹配的文本元素。
我正在尝试通过以下代码使用 vb.net
和 HtmlAgilityPack
获取网页:
Dim mWPage As New HtmlAgilityPack.HtmlDocument
Dim wC As New WebClient()
mWPage.Load(wC.OpenRead(mUrl))
我的问题是从 table 中获取文本,但是,当我提取 InnerText 时,我得到如下信息:
Modificat<!--span-->i  dati
而不是(请注意,我写了相同的字符串,下面显示正确):
Modificati dati
我试过使用答案
我注意到当我改变 "User-Agent" 时内容会改变,所以我尝试了各种 "User-Agent" 但我从来没有得到一个完美的文本。
所以我的问题是:
我可以使用答案中指示的代码来解决问题吗?
如果没有,我可以使用正确的"User-Agent"得到一个完美的文本吗?
如果是这样,我怎样才能找到正确的"User-Agent"?
如果没有,我该如何修复接收到的字符串?
基于新用户代理的服务器响应完全取决于服务器,因此我们无法预测哪一个会产生您正在寻找的响应。
但是...您将能够使用 HttpUtility.HtmlDecode
方法摆脱编码的 HTML 并将其转换为您要查找的字符串。
要过滤掉 HTML 注释,您可能需要更改正在使用的 XPath。如果您追加 //text()
,您应该只获得与表达式的其余部分匹配的文本元素。