2012-10-27 31 views
0

我想用c#獲取最新的NWS雷達圖像。 NWS網站上有directories包含最新圖像的列表。但是,這些文件是按上傳日期命名的,而不是按數字順序排列。他們通常每隔幾分鐘上傳一次,但確切的分鐘數可能會相差多達5分鐘。要獲取圖像的URL,我可以編寫一個XML解析器來從索引頁面中提取URL,但是對於這樣一個簡單的任務來說,這似乎過於複雜。另外,這個索引頁面不是一個API,並且如果他們可能會改變一些會使XML解析器搞砸的格式。有沒有其他方法可以獲取最新圖片的網址?如何獲取最新的國家氣象服務雷達圖像?

+1

好像他們認爲這是足夠穩定[記錄結構(HTTP:// WWW。 srh.noaa.gov/jetstream/doppler/ridge_download.htm) – fvu

+0

沒錯,所以上一個目錄並選擇_0.gif文件。 –

+0

我想獲取最新的IMAGES,而不僅僅是_0.gif。 – msbg

回答

1

html並不總是有效的xml。但是您可以使用像這樣的HtmlAgilityPack這樣的真正的html解析器。

WebClient wc = new WebClient(); 
var page = wc.DownloadString("http://radar.weather.gov/ridge/RadarImg/NCR/OKX/?C=M;O=D"); 

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(page); 

var imageLink = doc.DocumentNode.SelectNodes("//td/a[@href]") 
        .Select(a=>a.Attributes["href"].Value) 
        .OrderByDescending(a=>a) 
        .First(); 

- 編輯 -

忘了這個答案,走那條路United States Weather Radar Data Feed or API?

+0

閱讀網頁fvu在他的評論中提到,這似乎是一個好的解決方案。 – msbg