VB实现天气查询
2007-09-18 11:46
239 查看
领导出差了,总是很担心那边的天气情况,于是想在以前写的软件里面加入天气预报功能,多少方便些。
其实方法很是简单,就是从网页上抓取有用信息即可。只不过要在vb中先填入"Microsoft Internet Controls"这个部件,因为要使用到其中的WebBrowser。添加方法很简单,添加后如下图:
准备工作已经就绪,正式工作开始:
新建一个form表,在其上添加一个WebBrowser,一个按钮,一个Label。WebBrowser就是我们的网页承载器了。下面给出示例:
Private Sub Command1_Click()
Call WebBrowser1.Navigate("http://php.weather.sina.com.cn/search.php?city=北京")
Label11.Caption = "请 稍 后 …"
End Sub
下载下来的网页部分内容如下:
源文件部分如下:
既然知道文件的具体内容了,也就好搜索所需信息了,下面就是重点:
Private Sub WebBrowser1_DownloadComplete()
On Error Resume Next
weatherpage = WebBrowser1.Document.documentElement.innerHTML
Dim nhEndIndex As Long
Dim nhBeginIndex As Long
Dim htemperature As String
Dim ltemperature As String
Dim nlEndIndex As Long
Dim nlBeginIndex As Long
nhEndIndex = InStr(70, weatherpage, "℃")
If nhEndIndex > 0 Then
nhBeginIndex=InStrRev(weatherpage,">",nhEndIndex)+1
Label1=counterweather
htemperature=Mid(weatherpage,nhBeginIndex,nhEndIndex-nhBeginIndex+1)
nlEndIndex=InStr(nhEndIndex+1, weatherpage, "℃")
nlBeginIndex=InStrRev(weatherpage,"~",nlEndIndex)+1
ltemperature=(Mid(weatherpage,nlBeginIndex,nlEndIndex-nlBeginIndex+1))
Label1="北京今天:"&htemperature &"~" End If
End Sub
简单讲解一下就是:找到第一个℃,从℃往前到>为止的内容是最高温度部分,再往下找下一个℃,从这个℃往前到~,是最低温度部分。分别进行赋值给htemperature 和 ltemperature 然后通过label1显示即可。
注意:这段程序是和网页的内容相关的,如果你选择的气象网站的内容不是这样排列的,大家就要稍微修改一下代码了,但万变不离其宗。
当然,上面只是简单介绍了这种方法,还很不完善。比如:网页可能刷新很慢,或者出错怎么办?呵呵,当然方法很多也不难,还是大家自己想想吧,我就不多言了!
而且再次说下,这个方法不只适用于天气预报,只要是获取网页信息的,都适用。比如:股票信息,招聘信息,价格etc.
还是保留节目,show下我自己的软件:(自己也认为很弱)
其实方法很是简单,就是从网页上抓取有用信息即可。只不过要在vb中先填入"Microsoft Internet Controls"这个部件,因为要使用到其中的WebBrowser。添加方法很简单,添加后如下图:
准备工作已经就绪,正式工作开始:
新建一个form表,在其上添加一个WebBrowser,一个按钮,一个Label。WebBrowser就是我们的网页承载器了。下面给出示例:
Private Sub Command1_Click()
Call WebBrowser1.Navigate("http://php.weather.sina.com.cn/search.php?city=北京")
Label11.Caption = "请 稍 后 …"
End Sub
下载下来的网页部分内容如下:
源文件部分如下:
既然知道文件的具体内容了,也就好搜索所需信息了,下面就是重点:
Private Sub WebBrowser1_DownloadComplete()
On Error Resume Next
weatherpage = WebBrowser1.Document.documentElement.innerHTML
Dim nhEndIndex As Long
Dim nhBeginIndex As Long
Dim htemperature As String
Dim ltemperature As String
Dim nlEndIndex As Long
Dim nlBeginIndex As Long
nhEndIndex = InStr(70, weatherpage, "℃")
If nhEndIndex > 0 Then
nhBeginIndex=InStrRev(weatherpage,">",nhEndIndex)+1
Label1=counterweather
htemperature=Mid(weatherpage,nhBeginIndex,nhEndIndex-nhBeginIndex+1)
nlEndIndex=InStr(nhEndIndex+1, weatherpage, "℃")
nlBeginIndex=InStrRev(weatherpage,"~",nlEndIndex)+1
ltemperature=(Mid(weatherpage,nlBeginIndex,nlEndIndex-nlBeginIndex+1))
Label1="北京今天:"&htemperature &"~" End If
End Sub
简单讲解一下就是:找到第一个℃,从℃往前到>为止的内容是最高温度部分,再往下找下一个℃,从这个℃往前到~,是最低温度部分。分别进行赋值给htemperature 和 ltemperature 然后通过label1显示即可。
注意:这段程序是和网页的内容相关的,如果你选择的气象网站的内容不是这样排列的,大家就要稍微修改一下代码了,但万变不离其宗。
当然,上面只是简单介绍了这种方法,还很不完善。比如:网页可能刷新很慢,或者出错怎么办?呵呵,当然方法很多也不难,还是大家自己想想吧,我就不多言了!
而且再次说下,这个方法不只适用于天气预报,只要是获取网页信息的,都适用。比如:股票信息,招聘信息,价格etc.
还是保留节目,show下我自己的软件:(自己也认为很弱)
相关文章推荐
- 天气预报--保存已查询城市,历史记录功能实现
- [VB.NET]~~~~~~~怎样来实现多表查询哦~~~~~~~~~~~~
- 用python 实现自主查询实时天气 4000
- 微信公众平台天气查询,火车票查询,快递查询,小黄鸡,翻译,公交查询的实现
- C#添加WebService服务实现天气预报(查询)
- VB数据库编程实现添加、查询、修改、删除
- 调用天气api实现查询各城市天气
- Android实现天气查询
- PHP调用API接口实现天气查询功能的示例
- Angular实现的简单查询天气预报功能示例
- SpringMVC结合天气api实现天气查询
- 调用天气Api实现天气查询
- VB.NET实现ReportViewer 显示参数化查询结果
- 根据中国气象局提供的API接口实现天气查询
- VB.NET & (三层+泛型)实现组合查询
- 原生js实现查询天气的小应用
- 原生js实现查询天气小应用
- 天气预报--查询其他城市天气功能实现
- 微信公众平台天气查询,火车票查询,快递查询,小黄鸡,翻译,公交查询的实现
- python实现查询天气