Ambil HTML melalui proksi sebelum menghuraikan dengan Html Agility Pack
Gabungkan HttpClient yang dikonfigurasikan dengan proksi dan Html Agility Pack sambil memisahkan ralat rangkaian daripada penghuraian 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);Fragmen .NET moden ini menggunakan System.Net dan System.Net.Http. Klien yang dikonfigurasikan mengendalikan penghalaan rangkaian, dan Html Agility Pack menerima rentetan HTML yang dikembalikan. Kekalkan klien yang dikonfigurasikan dengan betul untuk kerja berterusan dan bukan membina semula kumpulannya bagi setiap halaman.
Untuk contoh halaman awam ini, calon tanpa pengesahan daripada senarai proksi HTTP boleh menggantikan perantara. Gantikan destinasi secara berasingan. URL laman web mengekalkan identiti TLSnya. Kelayakan proksi yang disahkan tergolong pada WebProxy; sama ada kelayakan laman web atau pengesahan yang dilumpuhkan tidak menggantikannya.
GetStringAsync menganggap status HTTP yang tidak berjaya sebagai ralat. Jangan tukar muat turun yang gagal kepada HtmlDocument kosong. Jika aplikasi memerlukan pengepala, butiran status atau badan ralat, gunakan operasi HTTP berorientasikan respons dan periksanya sebelum menghuraikan.
Kaedah rentetan mengelakkan penukaran UTF-8 tambahan tanpa syarat bagi bait mentah. Jika anda mengambil bait secara sengaja, bawa keperluan pengekodan respons dan dokumen ke dalam penyahkodan.
LoadHtml menghasilkan dokumen yang dihuraikan; ia tidak menjalankan skrip, memuatkan gaya atau mengikut pautan. Selesaikan pautan relatif seterusnya berbanding lokasi respons, dan ingat bahawa elemen yang dipaparkan oleh pelayar mungkin tiada dalam sumber yang dimuat turun. Setiap respons harus menghasilkan dokumennya sendiri walaupun permintaan berkongsi klien HTTP yang dikonfigurasikan sama.