繁体   English   中英

使用 AngleSharp 进行异步解析

[英]Async parsing with AngleSharp

所以我想从网站上解析一些数据,我找到了一个教程,这里是代码:

public static async void Test()
{
    var config = Configuration.Default.WithDefaultLoader();
    using var context = BrowsingContext.New(config);

    var url = "http://webcode.me";

    using var doc = await context.OpenAsync(url);
    // var title = doc.QuerySelector("title").InnerHtml;
    var title = doc.Title;

    Console.WriteLine(title);

    var pars = doc.QuerySelectorAll("p");

    foreach (var par in pars)
    {
        Console.WriteLine(par.Text().Trim());
    }
}

static void Main(string[] args)
{
    Test();
}

程序在到达以下位置后立即退出:

using var doc = await context.OpenAsync(url);

没有任何事情等待您的异步方法完成,因此程序退出。 您可以通过修改为使用异步主要方法来解决此问题:

static Task Main(string[] args)
{
    return Test();
}

或者,如果您使用的版本早于 C# 7.1(不支持 async main):

static void Main(string[] args)
{
    Test().GetAwaiter().GetResult();
}

您还需要将Test的返回类型更改为async Task

public static async Task Test()
{
    // ...
}

您可能会发现有关async main的 C# 7.1 文档很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM