Преузимање HTML-а преко проксија пре парсирања помоћу Html Agility Pack
Комбинујте HttpClient конфигурисан кроз прокси са Html Agility Pack, држећи мрежне грешке одвојене од парсирања HTML-а.
using var handler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);
string html = await client.GetStringAsync(
"https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);Овај модерни .NET фрагмент користи System.Net и System.Net.Http. Конфигурисани клијент управља мрежним усмеравањем, а Html Agility Pack прима враћени HTML низ. Задржите одговарајуће конфигурисан клијент за текући рад уместо да поново градите његове базене за сваку страницу.
За овај пример јавне странице, неаутентификовани кандидат са листе HTTP проксија може заменити посредника. Замените одредиште одвојено. URL веб-странице задржава свој TLS идентитет. Аутентификовани подаци проксија припадају WebProxy-ју; ни подаци веб-странице ни онемогућена провера их не замењују.
GetStringAsync третира неуспешне HTTP статусе као грешке. Не претварајте неуспешно преузимање у празан HtmlDocument. Ако апликацији требају заглавља, детаљи статуса или тело грешке, користите HTTP операцију оријентисану на одговор и прегледајте је пре парсирања.
Метода низа избегава безусловну додатну UTF-8 конверзију сирових бајтова. Ако намерно преузимате бајтове, пренесите захтеве за кодирањем одговора и документа у декодирање.
LoadHtml производи парсирани документ; не извршава скрипте, не учитава стилове нити прати везе. Решите наредне релативне везе према локацији одговора и запамтите да елементи које приказује прегледач могу изостати из преузетог извора. Сваки одговор треба да произведе сопствени документ чак и када захтеви деле исти конфигурисани HTTP клијент.