Foxtable(狐表)用户栏目专家坐堂 → 求助:多页网页代码获取时,提示错误!


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

主题:求助:多页网页代码获取时,提示错误!

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:多页网页代码获取时,提示错误!  发帖心情 Post By:2016/11/2 10:47:00 [只看该作者]

代码如下:
Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.gzwengan.jcy.gov.cn/gzdt/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim obj = web.document.GetElementsByTagName("table")(37)  '页面代码TABLE的一共有82个 含<table></table>
Dim count = obj.InnerText.Substring(1,1)
output.Show(count)
Dim str As String = ""
For i As Integer = 1 To count
    Dim pg = web.Document.GetElementById("num")
    pg.SetAttribute("Value", i)
    Dim inputs = web.Document.GetElementsByTagName("input")
    For Each input As object In inputs
        If input.GetAttribute("type") = "submit" Then
            input.InvokeMember("click")
            Do Until web.document.GetElementsByTagName("table").count > 36
                Application.DoEvents
            Loop
            Dim tb1s = web.document.GetElementsByTagName("table")(36) '页面代码TABLE的一共有82个 含<table></table>即从第36个<Table>开始查找
            For Each tb1 As object In tb1s.GetElementsByTagName("tr")'遍历TR'
                Dim sa = tb1.GetElementsByTagName("a")'获取A标签元素'
                If sa.count > 0 Then
                    Dim a = sa(0)
                    str &= a.InnerHtml
                    str &= a.GetAttribute("href")
                    Dim shijian As String= (FileSys.GetName(a.GetAttribute("href")).Insert(5,"-")).Insert(8,"-")
                    Dim Parts() As String = shijian.Split("_")
                    str & =Parts(0).Remove(0,1)
                End If
            Next
        End If
    Next
Next
output.Show(str)

错误如下:


图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看


如果将代码去掉“下一页”所有操作代码如下:
Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.gzwengan.jcy.gov.cn/gzdt/")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
Dim obj = web.document.GetElementsByTagName("table")(37)  '页面代码TABLE的一共有82个 含<table></table>
Dim count = obj.InnerText.Substring(1,1)
output.Show(count)
Dim str As String = ""
            Dim tb1s = web.document.GetElementsByTagName("table")(36) '页面代码TABLE的一共有82个 含<table></table>即从第36个<Table>开始查找
            For Each tb1 As object In tb1s.GetElementsByTagName("tr")'遍历TR'
                Dim sa = tb1.GetElementsByTagName("a")'获取A标签元素'
                If sa.count > 0 Then
                    Dim a = sa(0)
                    str &= a.InnerHtml
                    str &= a.GetAttribute("href")
                    Dim shijian As String= (FileSys.GetName(a.GetAttribute("href")).Insert(5,"-")).Insert(8,"-")
                    Dim Parts() As String = shijian.Split("_")
                    str & =Parts(0).Remove(0,1)
                End If
            Next
output.Show(str)
运行结果如下:

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看



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


加好友 发短信
等级:超级版主 帖子:111455 积分:567357 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/2 11:35:00 [只看该作者]

这边测试么有问题


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111455 积分:567357 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/2 11:36:00 [只看该作者]

Dim count as integer = val(obj.InnerText.Substring(1,1))

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/11/2 11:39:00 [只看该作者]

Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.gzwengan.jcy.gov.cn/gzdt/")
Do Until web.ReadyState = 4 AndAlso web.document.GetElementsByTagName("table").count > 37
    Application.DoEvents
Loop
Dim tbs As object = web.document.GetElementsByTagName("table")
'For i As Integer = 0 To tbs.count-1
    'output.show(i & " " & tbs(i).InnerText)
'Next
Dim obj = tbs(37)  '页面代码TABLE的一共有82个 含<table></table>
'output.show(obj.InnerHtml)
Dim strKey As String = "</script>"
Dim idx As Integer = obj.InnerHtml.IndexOf(strKey)
Dim count = obj.Innerhtml.Substring(idx+strKey.Length+1,2).replace("页", "")
msgbox(count)
Dim str As String = ""
For i As Integer = 1 To count
    Dim pg = web.Document.GetElementById("num")
    pg.SetAttribute("Value", i)
    Dim inputs = web.Document.GetElementsByTagName("input")
    For Each input As object In inputs
        If input.GetAttribute("type") = "submit" Then
            input.InvokeMember("click")
            Do Until web.document.GetElementsByTagName("table").count > 36
                Application.DoEvents
            Loop
            Dim tb1s = web.document.GetElementsByTagName("table")(36) '页面代码TABLE的一共有82个 含<table></table>即从第36个<Table>开始查找
            For Each tb1 As object In tb1s.GetElementsByTagName("tr")'遍历TR'
                Dim sa = tb1.GetElementsByTagName("a")'获取A标签元素'
                If sa.count > 0 Then
                    Dim a = sa(0)
                    str &= a.InnerHtml
                    str &= a.GetAttribute("href")
                    Dim shijian As String= (FileSys.GetName(a.GetAttribute("href")).Insert(5,"-")).Insert(8,"-")
                    Dim Parts() As String = shijian.Split("_")
                    str & =Parts(0).Remove(0,1)
                End If
            Next
        End If
    Next
Next
output.Show(str)

 回到顶部