Skip to main content
 首页 » 编程设计

C# Web 浏览器控件 : Navigating to a List to URLs

2024年02月03日25mengfanrong

我正在研究网络爬虫。为此,我正在使用 Webbrowser 控件。我有存储在数据库中的 url 列表,我想一个一个地遍历所有这些 url 并解析 HTML。

我使用了以下逻辑

            foreach (string href in hrefs) 
            { 
                webBrowser1.Url = new Uri(href); 
                webBrowser1.Navigate(href); 
            } 

我想在页面完全加载后在“webBrowser1_DocumentCompleted”事件中做一些工作。但是“webBrowser1_DocumentCompleted”没有得到控制,因为我在这里使用循环。它仅在“hrefs”中的最后一个 url 被导航并且控件退出循环时获得控件。

处理此类问题的最佳方法是什么?

请您参考如下方法:

将列表存储在您所在州的某处,以及您已到达的位置的索引。然后在 DocumentCompleted 事件中,解析 HTML,然后导航到下一页。

(就我个人而言,我不会使用 WebBrowser 控件进行网络爬行...我知道这意味着它会为您处理 JavaScript,但是要很好地并行化会困难得多比使用多个 WebRequest 或 WebClient 对象。)