如何从网页中提取字符串并显示它们?

时间:2015-04-18 01:21:34

标签: c# xpath html-agility-pack weather

我想在C#中制作桌面天气应用程序。我希望它能从weather.com拉出天气。我对这个问题很新。我正在使用HtmlAgilityPack.dll。我尝试了以下代码来拉取今天的天气(度):

string webUrl = "http://www.weather.com/weather/today/l/90025:4:US";
HtmlWeb HTMLweb = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = HTMLweb.Load(webUrl);
string degrees = doc.DocumentNode.SelectNodes("//*[@id=\"wx-local-wrap\"]/div[2]/div[2]/div/div/div/div/section/div/div/div[1]/div/section/section[1]/div[2]/span[1]/span")[0].InnerText;
MessageBox.Show("{0}°F", degrees);

但是,当我运行此代码时,它会抛出NullReferenceException。我做错了什么,我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:2)

处理这样的网页是一项详尽的任务,开发人员对网页的任何更改都会导致您的应用无用。

因此,请使用XML或API来检索天气数据。这可以是一个很好的起点:

http://openweathermap.org/current

它支持XML和JSON,您可以在其中提供诸如cityID,cityName或地理坐标等参数,并使用XmlReader

以简单的结构化XML格式返回结果。

希望有所帮助:)