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在完成当前页面上的操作之前一直导航到新页面
您必须创建一个bool变量来知道第一个过程何时完成。然后开始另一个。Application.DoEvents()将为您提供帮助。
请注意,所有这些事件都在主线程中运行。
在documentcompleted事件中,您进行链接处理。在链接处理的末尾,您通知浏览器导航到下一个url