Как установить кодировку для HtmlAgilityPack HtmlDocument - PullRequest
2 голосов
/ 21 сентября 2011

Вот мой код:

HtmlWeb hw = new HtmlWeb();

HtmlAgilityPack.HtmlDocument htmlDoc = hw.Load(@"www.SomeForeignURL.com");

Возвращенная HTML-страница содержит символы, которые выглядят странно, хотелось бы указать кодировку для возвращаемого документа в UTF-8. Как я могу решить это?

(попытался загрузить документ следующим образом: htmlDoc.Load ("url", Encoding.UTF8), но он возвратил ошибку о том, что URI не поддерживается или что-то в этом роде.)

1 Ответ

0 голосов
/ 09 февраля 2014

Возможно, это не очень полезно, но я столкнулся с проблемой, когда метод 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...