Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样判定是否存在a标签


  共有2197人关注过本帖树形打印复制链接

主题:[求助]怎样判定是否存在a标签

帅哥哟,离线,有人找我吗?
新航程小何
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4786 威望:0 精华:0 注册:2014/9/17 11:34:00
[求助]怎样判定是否存在a标签  发帖心情 Post By:2016/7/20 17:31:00 [只看该作者]

各位老师,我想通过以下代码去获取省市县乡村,但这个代码存在漏洞,比如在执行第2级的时候如果是“市辖区”没有a标签,就行提示错误。所以我想求助老师怎么在这个代码中判定有没有a标签
Dim url As String = "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2015/"
For i  As Integer = 11 To 65
    Dim web As new System.Windows.Forms.WebBrowser
    web.Navigate(url & i & ".html")
    Do While web.ReadyState <> 4
        Application.DoEvents
    Loop
    Dim trs = web.Document.GetElementsByTagName("table")(4).GetElementsByTagName("tr")
    For j As Integer = 1 To trs.count - 1
        Dim tr = trs(j)
        Dim tds = tr.GetElementsByTagName("td")
         output.show(tds(0).innerText) '最终显示第2级的ID
         output.show(tds(1).innerText) '最终显示第2级的名称
        ' output.show(tds(1).GetElementsByTagName("a")(0).GetAttribute("href"))
        Dim web1 As new System.Windows.Forms.WebBrowser
        web1.Navigate(tds(1).GetElementsByTagName("a")(0).GetAttribute("href"))
        Do While web1.ReadyState <> 4
            Application.DoEvents
        Loop

        Dim trs1 = web1.Document.GetElementsByTagName("table")(4).GetElementsByTagName("tr")
        For j1 As Integer = 1 To trs1.count - 1
            Dim tr1 = trs1(j1)
            Dim tds1 = tr1.GetElementsByTagName("td")
            output.show(tds1(0).innerText) '最终显示第3级的ID
            output.show(tds1(1).innerText) '最终显示第3级的名称
            'output.show(tds1(1).GetElementsByTagName("a")(0).GetAttribute("href"))
            
            Dim web2 As new System.Windows.Forms.WebBrowser
            web2.Navigate(tds1(1).GetElementsByTagName("a")(0).GetAttribute("href"))
            Do While web2.ReadyState <> 4
                Application.DoEvents
            Loop

            Dim trs2 = web2.Document.GetElementsByTagName("table")(4).GetElementsByTagName("tr")
            For j2 As Integer = 1 To trs2.count - 1
                Dim tr2 = trs2(j2)
                Dim tds2 = tr2.GetElementsByTagName("td")
                output.show(tds2(0).innerText)  '最终显示第4级的ID
                output.show(tds2(1).innerText)  '最终显示第4级的名称
                'output.show(tds2(1).GetElementsByTagName("a")(0).GetAttribute("href"))
                Dim web3 As new System.Windows.Forms.WebBrowser
                web3.Navigate(tds2(1).GetElementsByTagName("a")(0).GetAttribute("href"))
                Do While web3.ReadyState <> 4
                    Application.DoEvents
                Loop
                ' 循环打印di
                Dim trs3 = web3.Document.GetElementsByTagName("table")(4).GetElementsByTagName("tr")
                For j3 As Integer = 1 To trs3.count - 1
                    Dim tr3 = trs3(j3)
                    Dim tds3 = tr3.GetElementsByTagName("td")
                    output.show(tds3(0).innerText) '显示第5级Id
                    'output.show(tds3(1).innerText) '显示页面Id
                    output.show(tds3(2).innerText)  '显示5级名称
                Next
                'web3 = Nothing
                web3.Dispose
                Return ""
            Next
            'web2 = Nothing
            web2.Dispose
            Return ""
        Next
        'web1 = Nothing
        web1.Dispose
        Return ""
    Next
    web.Dispose
    Return ""
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/20 18:11:00 [只看该作者]

If tds2(1).GetElementsByTagName("a").Count > 0 Then

    tds2(1).GetElementsByTagName("a")(0).GetAttribute("href")

Else

    msgbox("没有链接")

End If

 

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=86263&skin=0

 


 回到顶部