怎么从网上获取天气预报信息?
如题....
[解决办法]
去某些提供天气预报服务的站点抓HTML数据,然后回来自己分析呗。
D版不是正好有个推荐的帖子,有个大牛写的天气预报工具,有Delphi源码可参考:
http://topic.csdn.net/u/20100911/10/8f36bbc2-7bbd-423d-81c3-4f114a4d40f4.html
[解决办法]
可通过Webserver方式调取,这个是接口地址http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
[解决办法]
闲来没事,写了一会儿
现在这种接口挺多
以下代码添加到 妖哥的一个源码上即可使用
http://down.ccrun.com/crnd0wn/136//src/GDIPlusWindow.047057.rar
png 可以从这里找到
http://www.zcool.com.cn/gfx/ZNTEzNjg=.html
TStringList * Split(AnsiString strString,AnsiString strSpliter){ TStringList *psList = new TStringList(); char *cc = strtok (strString.c_str(),strSpliter.c_str()); psList->Clear(); while(cc != NULL) { //执行字符串切割,并将结果填入psList中 psList->Add(AnsiString(cc)); cc = strtok(NULL,","); } return psList;}void __fastcall TfrmMain::FormShow(TObject *Sender){ // GetWeatherInfo("101270101"); //这个101270101是成都的。 if (!weatherMap.empty()) { if (weatherMap["weather1"] == "雷阵雨") { SetTransparent(WideString("01.png"), 100); Invalidate(); } if (weatherMap["weather1"] == "多云") { SetTransparent(WideString("16.png"), 100); Invalidate(); } // 接着写吧。 }}//---------------------------------------void __fastcall TfrmMain::GetWeatherInfo(AnsiString id){ IdHTTP1->Request->AcceptCharSet = "UTF-8"; AnsiString weatherInfoT = Utf8ToAnsi(IdHTTP1->Get("http://m.weather.com.cn/data/" + id + ".html")); AnsiString wi = weatherInfoT.SubString(17, weatherInfoT.Length() - 18); // 这个id不好查,你要去分析 weather上的相关数据 // 用这个更好 http://api.liqwei.com/weather/?city=北京 直接改城市名称 TStringList *sl = Split(wi, ","); weatherMap.clear(); for(int i = 0; i < sl->Count; i++) { TStringList *item = Split(sl->Strings[i], ":"); weatherMap.insert(pair<AnsiString, AnsiString>(item->Strings[0].SubString(2, item->Strings[0].Length() - 2), item->Strings[1].SubString(2, item->Strings[1].Length() - 2))); delete item; } delete sl;}
[解决办法]
在头文件 private:中添加
map<AnsiString, AnsiString> weatherMap; void __fastcall GetWeatherInfo(AnsiString id = "101270101");
[解决办法]
就是用
TIdHTTP 直接将网页GET回来
而且上面的两个接口都为民着想
就是一堆文本,特别是
http://api.liqwei.com/weather/?city=成都
很容易就分割开,而且还提供了三天的天气情况。
顺便说一个,现在的天气预报已经成了,天气即时报告。。。 预报功能已经废了。
[解决办法]
BCB2010 从妖哥 GDI+代码修改而来
上图湿度不对我没发现接口,还有很多种天气楼主自己去处理。
代码