从HTML源文件中读取数据

时间:2014-08-12 23:12:24

标签: c# html parsing

在这个网站上:http://eu.battle.net/wow/en/character/Kazzak/Ierina/simple我希望得到“560”项目级别的值。

我做了一些研究,并想出如何使用

获取所有源代码
string html = new WebClient().DownloadString(@"http://eu.battle.net/wow/en/character/Kazzak/Ierina/simple");

我想我应该阅读的值在源代码中:

(<span class="equipped">560</span> Equipped)

或在这里:

<div id="summary-averageilvl-best" class="best tip" data-id="averageilvl">
        560
    </div>

我尝试使用这种方式获取该值:https://stackoverflow.com/a/2958449/3935085

我的代码:

webBrowser1.DocumentText = new WebClient().DownloadString(@"http://eu.battle.net/wow/en/character/Kazzak/Ierina/simple");
            HtmlElement ilvl = webBrowser1.Document.GetElementById("equipped");
            label1.Text = ilvl.InnerText;

但是,ilvl返回null。

3 个答案:

答案 0 :(得分:2)

你可以使用正则表达式(正则表达式)。

string input = new WebClient().DownloadString(@"http://eu.battle.net/wow/en/character/Kazzak/Ierina/simple");

// Here we call Regex.Match for <span class="equipped">560</span>
Match match = Regex.Match(input, @"<span class=\""equipped\"">([0-9]+)</span>",
RegexOptions.IgnoreCase);

// Here we check the Match instance.
if (match.Success)
{
    string key = match.Groups[1].Value; //result here

}

答案 1 :(得分:2)

您可以使用HTMLAgilityPack来解析HTML

HtmlDocument html = new HtmlDocument();
html.Load("http://eu.battle.net/wow/en/character/Kazzak/Ierina/simple")
var myValue = html.DocumentNode.SelectNodes("//*[@class=\"equipped\"]");

答案 2 :(得分:1)

第一件事:你有一个 CLASS "equipped"的跨度,你试图获得一个 ID "equipped"

第二件事: 您可以尝试使用regular expression