继承我的代码:
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument htmlDoc = hw.Load(@"www.SomeForeignURL.com");
返回的HTML页面包含看起来很奇怪的字符,Id喜欢将返回文档的编码指定为UTF-8。我该如何解决这个问题?
(尝试像这样加载文档:htmlDoc.Load(“url”,Encoding.UTF8)但是它返回了一个错误,说明不支持URI或类似的东西。)
答案 0 :(得分:0)
它可能没那么有用但我遇到了一个问题,其中Load()方法无声地失败,可能无法检测格式,并通过首先将文件加载到字符串来解决它(我使用另一个函数来下载文件)。然后我使用了LoadHTML()方法。我迟到了一年回答,而且我使用的是PowerShell而不是C#,但提示可能仍然适用。
查看倒数第二行:它只是将文件读入字符串并传递给LoadHTML()
# http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-
scraping-world/
function DownloadFile {
Param([Parameter(mandatory=$true)]$source ,
[Parameter(mandatory=$true)]$destination)
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source, $destination)
}
$erroractionpreference = 'stop'
Set-Strictmode -version 2
DownloadFile "http://someurl/index.php?action=searchplayer&server=0&player=%" "$pwd\all.php"
$types = add-type -Path .\agilitypack\HtmlAgilityPack.dll
$doc = New-Object HtmlAgilityPack.HtmlDocument
$doc.LoadHtml([string](get-content .\all.html))
$doc