首页上一页 1 下一页尾页 8 条记录 1/1页
《范例完全自学手册》100例学习问题提取天气预报问题
发表在VB答疑区
2009-12-25
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
老师如果网页的字符都是动态的怎么提取啊比如上面的网页里边的“12月22日多云转阵雪”这些数据都是变量第2天数据就变了怎么定位啊比如下面的代码:
<string>12月22日 多云转阵雪</string>
<string>-16℃/-6℃</string>
<string>西风微风</string>
<string>1.gif</string>
<string>13.gif</string>
<string>12月23日 晴</string>
<string>-17℃/-5℃</string>
<string>西风微风</string>
<string>0.gif</string>
<string>0.gif</string>
<string>12月24日 多云转中雪</string>
<string>-13℃/-4℃</string>
<string>西南风微风转西风微风</string>
<string>1.gif</string>
<string>15.gif</string>
<string>12月25日 中到大雪转阵雪</string>
<string>-21℃/-7℃</string>
<string>北风3-4级</string>
<string>27.gif</string>
<string>13.gif</string>
<string>12月26日 多云</string>
<string>-23℃/-13℃</string>
<string>北风微风转东北风微风</string>
<string>1.gif</string>
<string>1.gif</string>
</ArrayOfString>
<string>12月22日 多云转阵雪</string>
<string>-16℃/-6℃</string>
<string>西风微风</string>
<string>1.gif</string>
<string>13.gif</string>
<string>12月23日 晴</string>
<string>-17℃/-5℃</string>
<string>西风微风</string>
<string>0.gif</string>
<string>0.gif</string>
<string>12月24日 多云转中雪</string>
<string>-13℃/-4℃</string>
<string>西南风微风转西风微风</string>
<string>1.gif</string>
<string>15.gif</string>
<string>12月25日 中到大雪转阵雪</string>
<string>-21℃/-7℃</string>
<string>北风3-4级</string>
<string>27.gif</string>
<string>13.gif</string>
<string>12月26日 多云</string>
<string>-23℃/-13℃</string>
<string>北风微风转东北风微风</string>
<string>1.gif</string>
<string>1.gif</string>
</ArrayOfString>
精彩评论 8
2009-12-25
沙发
您好:
您还是没明白,这个只是字符串处理的问题,就是因为天气数据是变化的,所以要将这个数据提取出来,然后将其保存在一个变量中,在显示出来。
首先,您要弄懂字符串函数的作用。例如函数instr,用来查找指定字符串的位置,我们要查找的是 与天气数据有关的字符串,例如<string>出现的位置,然后在从这个位置开始查找</string> 第一次出现的位置,<string>和</string>之间的数据,就是天气信息。(<string>12月22日 多云转阵雪</string> ),然后用mid,left,right等函数将这个数据提取出来就行了
您还是没明白,这个只是字符串处理的问题,就是因为天气数据是变化的,所以要将这个数据提取出来,然后将其保存在一个变量中,在显示出来。
首先,您要弄懂字符串函数的作用。例如函数instr,用来查找指定字符串的位置,我们要查找的是 与天气数据有关的字符串,例如<string>出现的位置,然后在从这个位置开始查找</string> 第一次出现的位置,<string>和</string>之间的数据,就是天气信息。(<string>12月22日 多云转阵雪</string> ),然后用mid,left,right等函数将这个数据提取出来就行了
2009-12-26
板凳
weatherpage = WebBrowser1.Document.documentElement.innerHTML
nhBegin = InStr(1, weatherpage, "<string>") '获取标志"<string>"的字符所在位置
nhEndc = InStr(1, weatherpage, "</string> ") '获取标志"</string>的字符所在位置
这只能提取第一次出现的位置啊这个网页原码下面的信息都想提取这个方法怎么实现啊
比如我想提取"<string>") 第3次出现的位置怎么提取啊
12月23日 晴
-17℃/-5℃
nhBegin = InStr(1, weatherpage, "<string>") '获取标志"<string>"的字符所在位置
nhEndc = InStr(1, weatherpage, "</string> ") '获取标志"</string>的字符所在位置
这只能提取第一次出现的位置啊这个网页原码下面的信息都想提取这个方法怎么实现啊
比如我想提取"<string>") 第3次出现的位置怎么提取啊
12月23日 晴
-17℃/-5℃
2009-12-29
4L
·根据老师的提示我这样写的代码但是得到的结果不对啊请老师指点 回复于:2009-12-27 09:01:50 5楼
CSDN00008
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim weatherpage As String
Dim city As String
Dim weather As String
Dim temperature As String
Dim nhBegin As Long
Dim nhEndc As Long
Dim nhEndw As Long
Dim nhEndt As Long
'判断是否能打开网页
If WebBrowser1.LocationName = "找不到服务器" Then
Label1.Caption = ""
MsgBox "无法打开网页进行获取", 48, "信息提示"
Exit Sub
End If
'获取网页内容
weatherpage = WebBrowser1.Document.documentElement.innerHTML
nhBegin = InStr(1, weatherpage, "<string>") '获取标志<string>的字符所在位置
nhEndc = InStr(1, weatherpage, "</string>") '获取标志</string>的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin + 8, nhEndc - nhBegin + 8)
结果获取到的是:
<STYLE>
而不是:
<string>吉林 白山</string> 中的地名:吉林 白山
这样写虽然可以获得想要的地址“吉林 白山”但是因为 <string>吉林 白山</string>
中间的地名是个变量所以地名变化以后就取不到正确的地址了
nhBegin = InStr(1, weatherpage, "吉林") '获取标志地名的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin, 5)
还是请老师指教一下怎么根据<string> </string> 获取中间的地名
还有后边出现的多个<string> </string>中间的气象信息
谢谢老师了
如果换成把网页保存成文件在从文件提取这些信息就可以提取了
但是我想学习直接这样提取请老师指教
CSDN00008
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim weatherpage As String
Dim city As String
Dim weather As String
Dim temperature As String
Dim nhBegin As Long
Dim nhEndc As Long
Dim nhEndw As Long
Dim nhEndt As Long
'判断是否能打开网页
If WebBrowser1.LocationName = "找不到服务器" Then
Label1.Caption = ""
MsgBox "无法打开网页进行获取", 48, "信息提示"
Exit Sub
End If
'获取网页内容
weatherpage = WebBrowser1.Document.documentElement.innerHTML
nhBegin = InStr(1, weatherpage, "<string>") '获取标志<string>的字符所在位置
nhEndc = InStr(1, weatherpage, "</string>") '获取标志</string>的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin + 8, nhEndc - nhBegin + 8)
结果获取到的是:
<STYLE>
而不是:
<string>吉林 白山</string> 中的地名:吉林 白山
这样写虽然可以获得想要的地址“吉林 白山”但是因为 <string>吉林 白山</string>
中间的地名是个变量所以地名变化以后就取不到正确的地址了
nhBegin = InStr(1, weatherpage, "吉林") '获取标志地名的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin, 5)
还是请老师指教一下怎么根据<string> </string> 获取中间的地名
还有后边出现的多个<string> </string>中间的气象信息
谢谢老师了
如果换成把网页保存成文件在从文件提取这些信息就可以提取了
但是我想学习直接这样提取请老师指教
2009-12-30
6L
代码如下:
weatherpage = Inet1.OpenURL("http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather?theUserID=&theCityCode=738")
nhBegin = InStr(1, weatherpage, "<string>") '获取标志气温的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin, 42)
提取出来的结果<string> </string>可以直接提取出来和定位了但是中间要提取的信息却变成乱码了
提取出来的信息如下:
<string>
weatherpage = Inet1.OpenURL("http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather?theUserID=&theCityCode=738")
nhBegin = InStr(1, weatherpage, "<string>") '获取标志气温的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin, 42)
提取出来的结果<string> </string>可以直接提取出来和定位了但是中间要提取的信息却变成乱码了
提取出来的信息如下:
<string>