.NET Core 2.1 Web Scraper控制台输出“ HtmlAgilityPack.HtmlDocument

时间:2018-11-27 21:43:28

标签: c# asp.net web-scraping html-agility-pack

我正在尝试使用.NET Core 2.1和HtmlAgilityPack创建一个网络抓取工具,该工具可以从na.op.gg中提取英雄联盟统计数据。

这是我的代码:

using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;

namespace WebScraper
{
    class Program
    {
        static void Main(string[] args)
        {
            {
                MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
            }
        }
        async static Task MainAsync(string[] args)
        {
            HttpClient client = new HttpClient();
            var response = await client.GetAsync("http://na.op.gg/summoner/userName=Mr%20BalIoon%20Hands");
            var pageContents = await response.Content.ReadAsStringAsync();
            HtmlDocument pageDocument = new HtmlDocument();
            pageDocument.LoadHtml(pageContents);

            var champWinRate = pageDocument.DocumentNode.SelectSingleNode("//*[@id=\"SummonerLayoutContent\"]/div[2]/div[1]/div[2]/div[2]/div[1]/div/div[1]/div[4]/div[2]");

            Console.WriteLine(champWinRate);
            Console.ReadLine();
        }
    }
}

对于XPath,我只是转到Chrome上,检查了元素,然后复制了XPath以获取获胜率统计信息。

运行程序时,将获得以下控制台输出:

HtmlAgilityPack.HtmlNode

我不确定自己在做什么错...有什么想法吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

champWinRate是一个对象。尝试检查其属性之一,例如InnerText