Foxtable(狐表)用户栏目专家坐堂 → 求助:网页源码获取之后,不知道是不是遍历循环不对,居然只有一条数据,实际有77条数据,麻烦补充下循环遍历,谢谢!


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

主题:求助:网页源码获取之后,不知道是不是遍历循环不对,居然只有一条数据,实际有77条数据,麻烦补充下循环遍历,谢谢!

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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/2 21:03:00 [显示全部帖子]

导出分析一下就知道了,table都在同一个层次,并不是在第4个table里面

Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://search.jcrb.com/was5/web/search?page=1&channelid=263328&perpage=10000000&outlinepage=10000000")

Do Until web.ReadyState = 4 AndAlso web.document.GetElementsByTagName("table").count > 1
    Application.DoEvents
Loop
output.Show(web.document.body.Innerhtml)


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


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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/2 22:02:00 [显示全部帖子]

代码始终在第四个table里面找,怎么会有呢,一个table只有一条数据

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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/2 22:02:00 [显示全部帖子]

Dim web As new System.Windows.Forms.WebBrowser
web.ScriptErrorsSuppressed = True
web.Navigate("http://search.jcrb.com/was5/web/search?page=1&channelid=263328&perpage=10000000&outlinepage=10000000")

Do Until web.ReadyState = 4 AndAlso web.document.GetElementsByTagName("table").count > 1
    Application.DoEvents
Loop

Dim str As String = ""
Dim tb1s = web.document.GetElementsByTagName("table") '从第4个<Table>开始查找
For i As Integer = 4 To tb1s.count - 1
    Dim tb1  = tb1s(i)
    Dim sa = tb1.GetElementsByTagName("a")'获取A标签元素'
    If sa.count > 0 Then
        Dim a = sa(0)
        Dim Tel As String = a.InnerHtml
        Dim Parts1() As String = Tel.Split("</FONT>")
        str &= Parts1(0) & vbcrlf
        str &= a.GetAttribute("href") & vbcrlf
        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) & vbcrlf
    End If
Next

output.Show(str)

 回到顶部