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

How can you pull strings from a webpage and display them?

我想用 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。我做错了什么,我该如何解决?

谢谢。

像这样处理网页是一项艰巨的任务,其开发人员对网页的任何更改都会使您的应用程序无用。

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

http://openweathermap.org/current

它支持 XML 和 JSON,您可以在其中提供城市 ID、城市名称或地理坐标等参数,returns 结构清晰 XML 易于解析使用 XmlReader

希望对您有所帮助:)