28/12/2019, 10:27

C #: Đọc một trang web không đồng bộ với WebClient

C #: Đọc một trang web không đồng bộ với WebClient

C #: Đọc một trang web không đồng bộ với WebClient Bạn có thể đánh giá một trang web bằng c # bằng cách tạo một ứng dụng khách Web, nhập địa chỉ Web và sau đó tải xuống trang dưới dạng văn bản. Sau đó, bạn có thể chuyển đổi văn bản thành cấu trúc XML và đánh giá từng nút. Mẫu này cho thấy việc đọc trang Web với bản tải xuống không đồng bộ của văn bản. Sẽ là tốt nhất để ngăn chặn chương trình treo trong vòng chờ cho kết quả bằng cách chạy quá trình tải xuống trong một hoạt động không đồng bộ. Phiên bản asychrone có nghĩa là cho máy khách Web, rằng sự kiện webClient.DoadStringCompleted phải được xác định trước đó và sau đó bắt đầu tải xuống.
 


 


 


// <get Website> // * tại đây: tải xuống dưới dạng chuỗi webClient.DoadStringCompleted + = WebClient_DoadStringCompleted; webClient.D DownloadStringAsync (địa chỉ); // </ nhận trang web>




 


 
 

 
Để bắt đầu tải xuống, trước tiên chương trình sẽ quay lại khi quá trình tải xuống kết thúc.
Trong khi đó, bạn có thể tiếp tục chạy các quy trình khác.


private void WebClient_DoadStringCompleted ( người gửi đối tượng DownloadStringCompletedEventArss e) // ------------------- <WebClient_DoadStringCompleted ()> ------------- ------ ..Tải xuống hoàn tất ..code .. // ------------------- </ WebClient_DoadStringCompleted ()> -------- ----------- }




 


 
Sau khi tải xuống, nếu bạn tải kết quả theo cấu trúc HTML bằng phương thức. LoadHtml (chuỗi).
"DownloadString" có nghĩa là kết quả của chính máy khách Web là một chuỗi.


tài liệu var new HtmlDocument (); tài liệu.LoadHtml (e.Result);

 


 
Do đó, HTMLDocument thu được có thể được đánh giá sau nút và HTMLEuityen.


var node = document.DocumentNode.SelectSingleNode ( "// span [@id = \" result_box \ "]" ); đầu ra
var = nút! = null nút.InnerText: e.Error.Message;
 


 

 
Video hướng dẫn

 
Chủ đề: WPF, WinForms, UWP (abgeändert), HTMLDocument, HTMLAgilityPack Mã hoàn chỉnh trong c # để sử dụng:
 
 


private void get_Document_Webclient_async ( url chuỗi // ------------------- <get_Document_Webclient_async ()> ---------------- --- // * url như: https://translate.google.com/?hl=vi#de/en/Hallo // kết quả là trong sự kiện: WebClient_DoadStringCompleted Uri address = new Uri (url); WebClient webClient = new WebClient (); webClient.Headers [ HttpRequestHeader .ContentType ] = "application / x-www-form-urlencoding" // <lấy Website> // * tại đây: tải xuống dưới dạng chuỗi




 

 


 


webClient.DoadStringCompleted + = WebClient_DoadStringCompleted;
webClient.D DownloadStringAsync (địa chỉ); // </ get Trang web> // ---- </ HTMLDocument> ---- // ------------------- </ get_Document_Webclient_async ()> - ----------------- private void WebClient_DoadStringCompleted ( người gửi đối tượng DownloadStringCompletedEventArss e) // ------------------- <WebClient_DoadStringCompleted ()> ------------------- // <check> if (e.Error! = Null var output = e.Error.Message; // </ check> khác nếu

 

 


 
 









(e.Result! = null )
{
var document = new HtmlDocument (); tài liệu.LoadHtml (e.Result); var node = document.DocumentNode.SelectSingleNode ( "// span [@id = \" result_box \ "]" ); đầu ra var = nút! = null nút.InnerText: e.Error.Message; // ------------------- </ WebClient_DoadStringCompleted ()> ------------------- }

 


 

 
0