Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mendapatkan Kandungan HTML Dijana Secara Berkesan Menggunakan .NET?
Ramai pembangun bergelut untuk mendapatkan semula kandungan HTML yang dijana secara dinamik menggunakan .NET. Pendekatan biasa, seperti menggunakan System.Windows.Forms.WebBrowser
atau mshtml.HTMLDocument
antara muka COM, selalunya gagal.
Kelas System.Windows.Forms.WebBrowser
dan antara muka mshtml.HTMLDocument
menyediakan kefungsian yang tidak mencukupi untuk menangkap HTML yang dimuatkan secara dinamik. Contoh kod berikut menggambarkan had ini:
Contoh menggunakan System.Windows.Forms.WebBrowser
:
<code class="language-csharp">WebBrowser wb = new WebBrowser(); wb.Navigate("https://www.google.com/#q=where+am+i"); wb.DocumentCompleted += (sender, e) => { mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)wb.Document.DomDocument; foreach (IHTMLElement element in doc.all) { System.Diagnostics.Debug.WriteLine(element.outerHTML); } }; Form f = new Form(); f.Controls.Add(wb); Application.Run(f);</code>
Contoh menggunakan mshtml.HTMLDocument
:
<code class="language-csharp">mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)new mshtml.HTMLDocument(); doc.write(new System.Net.WebClient().DownloadString("https://www.google.com/#q=where+am+i")); foreach (IHTMLElement e in doc.all) { System.Diagnostics.Debug.WriteLine(e.outerHTML); }</code>
Kedua-dua contoh gagal menangkap HTML yang lengkap dan dipaparkan secara dinamik.
Strategi yang lebih berkesan untuk mendapatkan semula HTML yang dijana secara dinamik melibatkan langkah-langkah ini:
FEATURE_BROWSER_EMULATION
untuk memastikan kawalan WebBrowser
menyokong ciri HTML5 moden.WebBrowser
untuk menavigasi ke URL dan mengendalikan acara DocumentCompleted
.documentElement.outerHTML
) untuk mengesan perubahan dalam kandungan HTML semasa halaman dipaparkan.WebBrowser.IsBusy
atau ketiadaan perubahan selanjutnya dalam documentElement.outerHTML
).Pendekatan yang diperhalusi ini menyediakan kaedah yang lebih dipercayai untuk menangkap kandungan HTML dinamik yang dipaparkan sepenuhnya. Teknik yang dipertingkatkan ini meningkatkan keupayaan interaksi aplikasi .NET dengan halaman web.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Kandungan HTML Dijana Secara Berkesan Menggunakan .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!