cefsharp 循环从多个页面提取数据

发布时间 2023-10-13 19:07:02作者: 空明流光
foreach(var url in urls)
{
    var loaded = false;
    Action<object, FrameLoadEndEventArgs> frameLoadEndProc = (s, args) =>
    {
        if (args.Frame.IsMain && args.Frame.Url == url.Value)
        {
            loaded = true;
        }
    };

    var frameLoadEndEventHandler = new EventHandler<FrameLoadEndEventArgs>(frameLoadEndProc);

    // 订阅事件处理程序
    browser.FrameLoadEnd += frameLoadEndEventHandler;

    //加载url并等待完成
    browser.Load(url);

    var start = DateTime.Now;
    while (!loaded)
    {
        //最多加载10s
        if (DateTime.Now - start > TimeSpan.FromSeconds(10))
        {
            //写代码抓取你要的数据
            break;
        }
    }

    // 取消订阅事件处理程序
    browser.FrameLoadEnd -= frameLoadEndEventHandler;
}