之前做的一個小程式需要擷取天氣預報接口,使用的是中國天氣網的免費接口:
http://m.weather.com.cn/data/101010100.html ,但最近發現這個接口的天氣資料不更新了,最新的天氣是2014年2月19日的。推測可能是加了什麼限制,目前網上搜到的大部分天氣接口都是這個。
下面的兩個天氣接口倒是仍然可以使用,不過一個是擷取實時天氣情況的,一個是擷取當天整體天氣情況的。對于需要擷取7天内的天氣情況,還需要找尋其他接口來實作。
http://www.weather.com.cn/data/sk/101010100.html
http://www.weather.com.cn/data/cityinfo/101010100.html
通過這幾天的測試,終于找到了一個可用的,特提供給大家。
接口擷取的就是中天氣網的手機版頁面中的資料,網址為: 首頁-中國天氣網 http://mobile.weather.com.cn/index.html。
資料是通過webclient,get方式來抓取的。這裡需要指出一個需要注意的地方。
就是在webClient添加的請求頭資訊中加入Referer資訊,否則擷取的天氣資料不是當天的。
擷取的的資料為:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauQDN4cDO5MTNwkDN1ETMw8CXzADNxAjMvwFM0kjMyMzLcl2Lc12bj5ycn9Gbi52YuAzcldWYtl2Lc9CX6MHc0RHaiojIsJye.jpg)
如果不加Referer頭資訊,擷取到的資料為:
無論你什麼時候擷取,擷取到的都是20131012這天的天氣資料。奇怪的是time是最新的,一直在更新的。由此也可以看出來,他們是加了某種過濾機制無法擷取真實的當天天氣,這也間接解釋了為什麼上面提到的那個天氣接口不能使用了。
說到這裡那就再加一句,開頭提到的天氣接口 http://m.weather.com.cn/data/101010100.html 即使我加了Referer資訊也不能擷取當天的。
資料抓取代碼:
<a></a>