提问者:小点点

Html敏捷性不使用异步方法中的字符串


我正在尝试获取一个重javascript的网站的HTML,然后使用HtmlAgilityPack分析接收到的HTML。

但是,当尝试使用这行加载数据时,我得到了期望的响应

var docB = fromDoc.LoadHtml(docBContent);

Visual studio对此一无所知,它说:

无法将void分配给隐式类型的变量

完整代码:

var fromDoc = new HtmlDocument();
var docBContent = await renderHtmlAsync(url2);
var docB = fromDoc.LoadHtml(docBContent); // error


public static async Task<string> renderHtmlAsync(string url2)
{
    await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
    Browser browser = await Puppeteer.LaunchAsync(new LaunchOptions
    {
        Headless = true
    });
    var page = await browser.NewPageAsync();
    page.DefaultTimeout = 0;
    var navigation = new NavigationOptions
    {
        Timeout = 0,
        WaitUntil = new[] {
                WaitUntilNavigation.DOMContentLoaded }
    };
    await page.GoToAsync(url2, navigation);
    var content = page.GetContentAsync();

    return await content;
}

共1个答案

匿名用户

您不需要从文档中添加符号。加载HTML(文档内容)到变量。

 var fromDoc = new HtmlDocument();
 var docBContent = await renderHtmlAsync(url2);
 fromDoc.LoadHtml(docBContent); 

现在你可以使用formDoc了。

喜欢:

var data = fromDoc.DocumentNode.SelectSingleNode("//div");