C#浏览器按顺序导航链接

本文关键字:导航 链接 顺序 浏览器 | 更新日期: 2023-09-27 18:29:02

我正在尝试自学C#,首先我正在尝试转换我最初在Autoit中编写的程序。

我使用的是一个Windows应用程序表单,该程序假定使用一个或两个链接作为输入。导航到这些页面,从表中获取一些链接,然后访问每个页面以获取一些内容。

如果只输入一个链接,它似乎会转到该页面,并像预期的那样从表中获取链接。如果输入两个链接,则它似乎只从第二个表中获取链路。

因此,如果两个链接通过此方法

    private void getPageURLList(string site1, string site2)
    {
        getPageURLList(site1);
        getPageURLList(site2);           
    }

调用与只有一个链接时调用的方法相同的方法

    private void getPageURLList(string site)
    {
        webBrowser.DocumentCompleted += createList;
        webBrowser.Navigate(site);
    }

我敢肯定,问题是"Navigate"在createList第一次启动之前就被第二次调用了。

我使用WebBrowser的原因是,这些页面使用Javascript对表中的链接进行排序,因此HTTPRequest和HTMLAgilityPack似乎无法获取这些链接。

所以我想我的问题是:我如何才能让我的WebBrowser在完成当前页面上的操作之前一直导航到新页面

C#浏览器按顺序导航链接

您必须创建一个bool变量来知道第一个过程何时完成。然后开始另一个。Application.DoEvents()将为您提供帮助。

请注意,所有这些事件都在主线程中运行。

在documentcompleted事件中,您进行链接处理。在链接处理的末尾,您通知浏览器导航到下一个url