从网站上获取需要的数据实力(天气预报)




//定义

Option Explicit

Private Type Weather
    strAdd     As String
    strDate    As String
    strPicPath As String
    strWeather As String
    strWind    As String
    strSM(10)  As String
   
End Type
Public Weatherday(2) As Weather
//*******************************************************************

//窗体

Option Explicit
Dim strHTML As String
Public StaFlag As Byte
Private Sub Combo1_Click()

    Combo2.Clear
    '北京
    If Combo1.Text = "北京市" Then
        Combo2.AddItem "北京"
    End If
    '天津
    If Combo1.Text = "天津市" Then
        Combo2.AddItem "天津"
    End If
    '山西省
    If Combo1.Text = "山西省" Then
        Combo2.AddItem "太原"
        Combo2.AddItem "大同"
        Combo2.AddItem "阳泉"
        Combo2.AddItem "晋城"
        Combo2.AddItem "朔州"
        Combo2.AddItem "忻州"
        Combo2.AddItem "离石"
        Combo2.AddItem "榆次"
        Combo2.AddItem "临汾"
        Combo2.AddItem "运城"
        Combo2.AddItem "长治"
    End If
    '河北省
    If Combo1.Text = "河北省" Then
        Combo2.AddItem "石家庄"
        Combo2.AddItem "唐山"
        Combo2.AddItem "秦皇岛"
        Combo2.AddItem "张家口"
        Combo2.AddItem "承德"
        Combo2.AddItem "廊坊"
        Combo2.AddItem "邯郸"
        Combo2.AddItem "邢台"
        Combo2.AddItem "保定"
        Combo2.AddItem "沧州"
        Combo2.AddItem "衡水"

    End If
    '内蒙古自治区
    If Combo1.Text = "内蒙古自治区" Then
        Combo2.AddItem "呼和浩特"
        Combo2.AddItem "包头"
        Combo2.AddItem "乌海"
        Combo2.AddItem "集宁"
        Combo2.AddItem "巴彦浩特"
        Combo2.AddItem "临河"
        Combo2.AddItem "鄂尔多斯"
        Combo2.AddItem "赤峰"
        Combo2.AddItem "通辽"
        Combo2.AddItem "锡林浩特"
        Combo2.AddItem "海拉尔"
        Combo2.AddItem "乌兰浩特"
    End If
    '辽宁省
    If Combo1.Text = "辽宁省" Then
        Combo2.AddItem "沈阳"
        Combo2.AddItem "大连"
        Combo2.AddItem "鞍山"
        Combo2.AddItem "抚顺"
        Combo2.AddItem "本溪"
        Combo2.AddItem "锦州"
        Combo2.AddItem "营口"
        Combo2.AddItem "阜新"
        Combo2.AddItem "盘锦"
        Combo2.AddItem "铁岭"
        Combo2.AddItem "朝阳"
        Combo2.AddItem "葫芦岛"
        Combo2.AddItem "丹东"
        Combo2.AddItem "辽阳"
    End If
    '吉林省
    If Combo1.Text = "吉林省" Then
        Combo2.AddItem "长春"
        Combo2.AddItem "吉林"
        Combo2.AddItem "四平"
        Combo2.AddItem "辽源"
        Combo2.AddItem "松原"
        Combo2.AddItem "白城"
        Combo2.AddItem "延边"
        Combo2.AddItem "通化"
    End If
    '黑龙江省
    If Combo1.Text = "黑龙江省" Then
        Combo2.AddItem "哈尔滨"
        Combo2.AddItem "鸡西"
        Combo2.AddItem "鹤岗"
        Combo2.AddItem "双鸭山"
        Combo2.AddItem "伊春"
        Combo2.AddItem "佳木斯"
        Combo2.AddItem "七台河"
        Combo2.AddItem "牡丹江"
        Combo2.AddItem "绥化"
        Combo2.AddItem "齐齐哈尔"
        Combo2.AddItem "大庆"
        Combo2.AddItem "黑河"
        Combo2.AddItem "大兴安岭"
    End If
    '上海市
    If Combo1.Text = "上海市" Then
        Combo2.AddItem "上海"
    End If
    '江苏省
    If Combo1.Text = "江苏省" Then
        Combo2.AddItem "南京"
        Combo2.AddItem "无锡"
        Combo2.AddItem "徐州"
        Combo2.AddItem "常州"
        Combo2.AddItem "苏州"
        Combo2.AddItem "南通"
        Combo2.AddItem "连云港"
        Combo2.AddItem "淮阴"
        Combo2.AddItem "盐城"
        Combo2.AddItem "扬州"
        Combo2.AddItem "镇江"
        Combo2.AddItem "泰州"
        Combo2.AddItem "宿迁"
    End If
    '浙江省
    If Combo1.Text = "浙江省" Then
        Combo2.AddItem "杭州"
        Combo2.AddItem "宁波"
        Combo2.AddItem "温州"
        Combo2.AddItem "嘉兴"
        Combo2.AddItem "湖州"
        Combo2.AddItem "绍兴"
        Combo2.AddItem "金华"
        Combo2.AddItem "衢州"
        Combo2.AddItem "舟山"
        Combo2.AddItem "丽水"
        Combo2.AddItem "台州"
    End If
    '安徽省
    If Combo1.Text = "安徽省" Then
        Combo2.AddItem "合肥"
        Combo2.AddItem "芜湖"
        Combo2.AddItem "蚌埠"
        Combo2.AddItem "淮南"
        Combo2.AddItem "马鞍山"
        Combo2.AddItem "淮北"
        Combo2.AddItem "铜陵"
        Combo2.AddItem "安庆"
        Combo2.AddItem "黄山市"
        Combo2.AddItem "阜阳"
        Combo2.AddItem "宿州"
        Combo2.AddItem "滁州"
        Combo2.AddItem "六安"
        Combo2.AddItem "宣城"
        Combo2.AddItem "巢湖"
        Combo2.AddItem "池州"
    End If
    '福建省
    If Combo1.Text = "福建省" Then
        Combo2.AddItem "福州"
        Combo2.AddItem "厦门"
        Combo2.AddItem "莆田"
        Combo2.AddItem "三明"
        Combo2.AddItem "泉州"
        Combo2.AddItem "漳州"
        Combo2.AddItem "南平"
        Combo2.AddItem "宁德"
        Combo2.AddItem "龙岩"
        Combo2.AddItem "陇南"
        Combo2.AddItem "庆阳"
    End If

    '江西省
    If Combo1.Text = "江西省" Then
        Combo2.AddItem "南昌"
        Combo2.AddItem "景德镇"
        Combo2.AddItem "赣州"
        Combo2.AddItem "萍乡"
        Combo2.AddItem "九江"
        Combo2.AddItem "新余"
        Combo2.AddItem "鹰潭"
        Combo2.AddItem "宜春"
        Combo2.AddItem "上饶"
        Combo2.AddItem "吉安"
    End If
    '山东省
    If Combo1.Text = "山东省" Then
        Combo2.AddItem "济南"
        Combo2.AddItem "青岛"
        Combo2.AddItem "淄博"
        Combo2.AddItem "枣庄"
        Combo2.AddItem "东营"
        Combo2.AddItem "烟台"
        Combo2.AddItem "潍坊"
        Combo2.AddItem "济宁"
        Combo2.AddItem "泰安"
        Combo2.AddItem "威海"
        Combo2.AddItem "日照"
        Combo2.AddItem "滨州"
        Combo2.AddItem "德州"
        Combo2.AddItem "聊城"
        Combo2.AddItem "临沂"
        Combo2.AddItem "菏泽"
        Combo2.AddItem "莱芜"
    End If
    '河南
    If Combo1.Text = "河南省" Then
        Combo2.AddItem "郑州"
        Combo2.AddItem "开封"
        Combo2.AddItem "洛阳"
        Combo2.AddItem "平顶山"
        Combo2.AddItem "安阳"
        Combo2.AddItem "鹤壁"
        Combo2.AddItem "新乡"
        Combo2.AddItem "焦作"
        Combo2.AddItem "濮阳"
        Combo2.AddItem "许昌"
        Combo2.AddItem "漯河"
        Combo2.AddItem "三门峡"
        Combo2.AddItem "商丘"
        Combo2.AddItem "周口"
        Combo2.AddItem "驻马店"
        Combo2.AddItem "南阳"
        Combo2.AddItem "信阳"
    End If
    '湖北省
    If Combo1.Text = "湖北省" Then
        Combo2.AddItem "武汉"
        Combo2.AddItem "黄石"
        Combo2.AddItem "十堰"
        Combo2.AddItem "随州"
        Combo2.AddItem "宜昌"
        Combo2.AddItem "襄樊"
        Combo2.AddItem "鄂州"
        Combo2.AddItem "荆门"
        Combo2.AddItem "黄冈"
        Combo2.AddItem "孝感"
        Combo2.AddItem "咸宁"
        Combo2.AddItem "荆州"
        Combo2.AddItem "恩施"
    End If
    '湖南省
    If Combo1.Text = "湖南省" Then
        Combo2.AddItem "长沙"
        Combo2.AddItem "衡阳"
        Combo2.AddItem "邵阳"
        Combo2.AddItem "郴州"
        Combo2.AddItem "永州"
        Combo2.AddItem "韶山"
        Combo2.AddItem "张家界"
        Combo2.AddItem "怀化"
        Combo2.AddItem "吉首"
        Combo2.AddItem "株洲"
        Combo2.AddItem "湘潭"
        Combo2.AddItem "岳阳"
        Combo2.AddItem "常德"
        Combo2.AddItem "益阳"
        Combo2.AddItem "娄底"
    End If
    '广东省
    If Combo1.Text = "广东省" Then
        Combo2.AddItem "广州"
        Combo2.AddItem "深圳"
        Combo2.AddItem "汕尾"
        Combo2.AddItem "惠州"
        Combo2.AddItem "河源"
        Combo2.AddItem "佛山"
        Combo2.AddItem "清远"
        Combo2.AddItem "东莞"
        Combo2.AddItem "珠海"
        Combo2.AddItem "江门"
        Combo2.AddItem "肇庆"
        Combo2.AddItem "中山"
        Combo2.AddItem "湛江"
        Combo2.AddItem "茂名"
        Combo2.AddItem "韶关"
        Combo2.AddItem "汕头"
        Combo2.AddItem "梅州"
        Combo2.AddItem "阳江"
        Combo2.AddItem "潮州"
        Combo2.AddItem "顺德"
        Combo2.AddItem "揭阳"
        Combo2.AddItem "云浮"
    End If
    '广西壮族自治区
    If Combo1.Text = "广西壮族自治区" Then
        Combo2.AddItem "南宁"
        Combo2.AddItem "梧州"
        Combo2.AddItem "玉林"
        Combo2.AddItem "桂林"
        Combo2.AddItem "百色"
        Combo2.AddItem "河池"
        Combo2.AddItem "钦州"
        Combo2.AddItem "柳州"
        Combo2.AddItem "北海"
        Combo2.AddItem "防城港"
        Combo2.AddItem "贵港"
        Combo2.AddItem "贺州"
    End If
    '海南省
    If Combo1.Text = "海南省" Then
        Combo2.AddItem "海口"
        Combo2.AddItem "三亚"
        Combo2.AddItem "西沙群岛"
    End If
    '四川省
    If Combo1.Text = "四川省" Then
        Combo2.AddItem "成都"
        Combo2.AddItem "眉山"
        Combo2.AddItem "雅安"
        Combo2.AddItem "峨嵋山"
        Combo2.AddItem "自贡"
        Combo2.AddItem "南充"
        Combo2.AddItem "泸州"
        Combo2.AddItem "德阳"
        Combo2.AddItem "绵阳"
        Combo2.AddItem "遂宁"
        Combo2.AddItem "内江"
        Combo2.AddItem "乐山"
        Combo2.AddItem "宜宾"
        Combo2.AddItem "广元"
        Combo2.AddItem "达州"
        Combo2.AddItem "资阳"
        Combo2.AddItem "攀枝花"
        Combo2.AddItem "阿坝"
        Combo2.AddItem "甘孜"
        Combo2.AddItem "凉山"
        Combo2.AddItem "广安"
        Combo2.AddItem "巴中"
    End If
    '重庆市
    If Combo1.Text = "重庆市" Then
        Combo2.AddItem "重庆"
        Combo2.AddItem "万州"
        Combo2.AddItem "涪陵"
        Combo2.AddItem "黔江"
    End If

    '贵州省
    If Combo1.Text = "贵州省" Then
        Combo2.AddItem "贵阳"
        Combo2.AddItem "六盘水"
        Combo2.AddItem "铜仁"
        Combo2.AddItem "安顺"
        Combo2.AddItem "凯里"
        Combo2.AddItem "都匀"
        Combo2.AddItem "兴义"
        Combo2.AddItem "毕节"
        Combo2.AddItem "遵义"
    End If

    '云南省
    If Combo1.Text = "云南省" Then
        Combo2.AddItem "昆明"
        Combo2.AddItem "德宏"
        Combo2.AddItem "曲靖"
        Combo2.AddItem "楚雄"
        Combo2.AddItem "玉溪"
        Combo2.AddItem "红河"
        Combo2.AddItem "文山"
        Combo2.AddItem "思茅"
        Combo2.AddItem "昭通"
        Combo2.AddItem "西双版纳"
        Combo2.AddItem "大理"
        Combo2.AddItem "保山"
        Combo2.AddItem "怒江"
        Combo2.AddItem "丽江"
        Combo2.AddItem "迪庆"
        Combo2.AddItem "临沧"
    End If

    '西藏自治区
    If Combo1.Text = "西藏自治区" Then
        Combo2.AddItem "拉萨"
        Combo2.AddItem "昌都"
        Combo2.AddItem "山南"
        Combo2.AddItem "日喀则"
        Combo2.AddItem "那曲"
        Combo2.AddItem "阿里"
        Combo2.AddItem "林芝"
    End If

    '陕西省
    If Combo1.Text = "陕西省" Then
        Combo2.AddItem "西安"
        Combo2.AddItem "铜川"
        Combo2.AddItem "宝鸡"
        Combo2.AddItem "咸阳"
        Combo2.AddItem "渭南"
        Combo2.AddItem "汉中"
        Combo2.AddItem "安康"
        Combo2.AddItem "商洛"
        Combo2.AddItem "延安"
        Combo2.AddItem "榆林"
    End If

    '甘肃省
    If Combo1.Text = "甘肃省" Then
        Combo2.AddItem "兰州"
        Combo2.AddItem "白银"
        Combo2.AddItem "金昌"
        Combo2.AddItem "天水"
        Combo2.AddItem "张掖"
        Combo2.AddItem "武威"
        Combo2.AddItem "定西"
        Combo2.AddItem "平凉"
        Combo2.AddItem "临夏"
        Combo2.AddItem "嘉峪关"
        Combo2.AddItem "酒泉"
    End If
    '青海省
    If Combo1.Text = "青海省" Then
        Combo2.AddItem "西宁"
        Combo2.AddItem "果洛"
        Combo2.AddItem "海西"
        Combo2.AddItem "格尔木"
        Combo2.AddItem "海东"
        Combo2.AddItem "海北"
        Combo2.AddItem "玉树"
        Combo2.AddItem "黄南"
    End If
    '宁夏回族自治区
    If Combo1.Text = "宁夏回族自治区" Then
        Combo2.AddItem "银川"
        Combo2.AddItem "石嘴山"
        Combo2.AddItem "吴忠"
        Combo2.AddItem "固原"
    End If
    '新疆维吾尔自治区
    If Combo1.Text = "新疆维吾尔自治区" Then
        Combo2.AddItem "乌鲁木齐"
        Combo2.AddItem "克拉玛依"
        Combo2.AddItem "吐鲁番"
        Combo2.AddItem "哈密"
        Combo2.AddItem "昌吉"
        Combo2.AddItem "博乐"
        Combo2.AddItem "库尔勒"
        Combo2.AddItem "阿克苏"
        Combo2.AddItem "克州"
        Combo2.AddItem "喀什"
        Combo2.AddItem "伊犁"
        Combo2.AddItem "石河子"
        Combo2.AddItem "塔城"
        Combo2.AddItem "阿勒泰"
        Combo2.AddItem "和田"
    End If
    '台湾省
    If Combo1.Text = "台湾省" Then
        Combo2.AddItem "台北"
    End If

    '澳门特别行政区
    If Combo1.Text = "澳门特别行政区" Then
        Combo2.AddItem "澳门"
    End If

    '香港特别行政区
    If Combo1.Text = "香港特别行政区" Then
        Combo2.AddItem "香港"
    End If
    Combo2.ListIndex = 0
End Sub

Private Sub Command1_Click()
    If Combo2.Text = "" Then
        MsgBox "请选择城市!", vbOKOnly + 64, "提示"
    Else
        strHTML = ""
        tital.Caption = Combo2.Text & "天气"
        StaFlag = 0
        Call WebBrowser1.Navigate("http://php.weather.sina.com.cn/search.php?city=" & Combo2.Text)
        Label1.Caption = "请 稍 后 ..."
    End If
End Sub

Private Sub Command2_Click()
Call DisPlayData(StaFlag)
End Sub

Private Sub Form_Load()
    Combo1.AddItem "北京市"
    Combo1.AddItem "天津市"
    Combo1.AddItem "重庆市"
    Combo1.AddItem "河北省"
    Combo1.AddItem "山西省"
    Combo1.AddItem "内蒙古自治区"
    Combo1.AddItem "辽宁省"
    Combo1.AddItem "吉林省"
    Combo1.AddItem "黑龙江省"
    Combo1.AddItem "上海市"
    Combo1.AddItem "江苏省"
    Combo1.AddItem "浙江省"
    Combo1.AddItem "安徽省"
    Combo1.AddItem "福建省"
    Combo1.AddItem "江西省"
    Combo1.AddItem "山东省"
    Combo1.AddItem "河南省"
    Combo1.AddItem "湖北省"
    Combo1.AddItem "湖南省"
    Combo1.AddItem "广东省"
    Combo1.AddItem "广西壮族自治区"
    Combo1.AddItem "海南省"
    Combo1.AddItem "四川省"
    Combo1.AddItem "贵州省"
    Combo1.AddItem "云南省"
    Combo1.AddItem "西藏自治区"
    Combo1.AddItem "陕西省"
    Combo1.AddItem "甘肃省"
    Combo1.AddItem "青海省"
    Combo1.AddItem "宁夏回族自治区"
    Combo1.AddItem "新疆维吾尔自治区"
    Combo1.AddItem "台湾省"
    Combo1.AddItem "香港特别行政区"
    Combo1.AddItem "澳门特别行政区"
    Combo1.ListIndex = 0
End Sub

Private Sub WebBrowser1_DownloadComplete()
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim intTemp As Integer
    On Error Resume Next
    If Len(strHTML) = 0 Then
        'Get data
        strHTML = WebBrowser1.Document.documentElement.innerHTML
        If Len(strHTML) <> 0 Then
            For j = 0 To 2
                i = InStr(strHTML, "<DIV class=City_Data>")
                strHTML = Mid$(strHTML, i)
                Weatherday(j).strAdd = GetData("<H3>", "</H3>", strHTML)
                Weatherday(j).strDate = GetData("<P>", "</P>", strHTML)
                Weatherday(j).strPicPath = GetData("src=" & Chr$(34), Chr$(34) & "></DIV>", strHTML)
                Weatherday(j).strWeather = GetData("Weather_TP>", "</DIV>", strHTML)
                Weatherday(j).strWind = GetData("Weather_W>", "</DIV>", strHTML)
                i = InStr(strHTML, "<DIV class=Weather_SM")
                strHTML = Mid$(strHTML, i)
                intTemp = IIf(j = 0, 9, 5)
                For k = 0 To intTemp
                    Weatherday(j).strSM(k) = GetData("<P>", "</P>", strHTML)
                Next
            Next
            'Display Data
            Call DisPlayData(StaFlag)
           
            Label1.Caption = "下载完成 "
        End If

    End If
Exit Sub
err1:

End Sub
Public Sub DisPlayData(index As Byte)
    On Error GoTo ToExit '打开错误陷阱
    '------------------------------------------------
    Dim i As Integer
    Frame1(0).Caption = Replace$(Weatherday(index).strAdd, "&nbsp;", " ")
    todayTime(0).Caption = Replace$(Weatherday(index).strDate, "&nbsp;", " ")
    TodayTP(0).Caption = Replace$(Weatherday(index).strWeather, "&nbsp;", " ")
    TodayTP(1).Caption = Replace$(Weatherday(index).strWind, "&nbsp;", "")
    For i = 0 To 9
        TodayTP(i + 2).Caption = vbNullString
        TodayTP(i + 2).Caption = Mid$(Replace$(Weatherday(index).strSM(i), "</SPAN>", ""), 7)
    Next
    Call DownBinData(Weatherday(index).strPicPath)
    DoEvents

    Image1.Picture = LoadPicture(App.Path & "/imag.gif")
    index = index + 1
    If index >= 3 Then index = 0
    '------------------------------------------------
    Exit Sub
    '----------------
ToExit:
End Sub
Public Function GetData(StartFlag As String, EndFlag As String, strSource As String) As String
    Dim lngStart As Long
    Dim lngEnd   As Long
    Dim strTemp  As String
    lngStart = InStr(1, strSource, StartFlag)
    lngEnd = InStr(lngStart, strSource, EndFlag)
    strTemp = Mid(strSource, lngStart + Len(StartFlag), lngEnd - lngStart - Len(StartFlag))
    strSource = Mid(strSource, lngEnd + Len(EndFlag))
    GetData = strTemp
End Function
'下载二进制内容
'*******************************************************************************************
'FunctionName: DownBinData
'Description :DownLoad BinaryData
'Return      : Boolean
'parameter   : sURL:WEB Adress
'*******************************************************************************************
Private Function DownBinData(ByVal sURL As String) As Boolean
   On Error GoTo ExitHead
   Dim m_vBinData() As Byte
    m_vBinData() = Inet1.OpenURL(sURL, icByteArray)
EntryBegin:
    DoEvents
    If UBound(m_vBinData) <> 0 Then
          DoEvents
    End If
    If Inet1.StillExecuting Then
         DoEvents
         GoTo EntryBegin:
    End If
   
    DownBinData = True
    If Dir(App.Path & "/imag.gif") <> "" Then
      Kill App.Path & "/imag.gif"
    End If
    Open App.Path & "/imag.gif" For Binary As #1
        Put #1, 1, m_vBinData
    Close #1
   
   
    Exit Function
ExitHead:
    DownBinData = False
   '将错误输出到日志中
'   If Err <> 0 Then
'        SaveErrMsg Err, Me, "DownBinData"
'   End If
End Function
 

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值