Foxtable(狐表)用户栏目专家坐堂 → 关于提取网页信息问题的请教


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

主题:关于提取网页信息问题的请教

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 15:38:00 [显示全部帖子]


Dim web As new System.Windows.Forms.WebBrowser
web.Navigate("http://125.35.6.80:8080/ftba/fw.jsp")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl").count > 0
    Application.DoEvents
Loop
Dim web1 As New System.Windows.Forms.WebBrowser
For Each dl As object In web.Document.GetElementById("FileItems").GetElementsByTagName("dl")
    output.show(dl.innerhtml)
    Dim url As String = dl.GetElementsByTagName("a")(0).GetAttribute("href")
    web1.Navigate(url)
    Do Until web1.ReadyState = 4 AndAlso web1.document.GetElementById("dzpznr").innerhtml.contains("正在加载") = False
        Application.DoEvents
    Loop
    output.show(web1.Document.GetElementById("dzpznr").innerhtml)
    output.show(vbcrlf & vbcrlf)
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 16:05:00 [显示全部帖子]

Dim web As new System.Windows.Forms.WebBrowser
web.Navigate("http://125.35.6.80:8080/ftba/fw.jsp")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl").count > 0
    Application.DoEvents
Loop
Dim web1 As New System.Windows.Forms.WebBrowser

'第二页
Dim tstr As String = web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerHtml
web.Document.GetElementById("pageIto_first2").InvokeMember("Click")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerhtml <> tstr
    Application.DoEvents
Loop

For Each dl As object In web.Document.GetElementById("FileItems").GetElementsByTagName("dl")
    output.show(dl.innerhtml)
    Dim url As String = dl.GetElementsByTagName("a")(0).GetAttribute("href")
    web1.Navigate(url)
    Do Until web1.ReadyState = 4 AndAlso web1.document.GetElementById("dzpznr").innerhtml.contains("正在加载") = False
        Application.DoEvents
    Loop
    output.show(web1.Document.GetElementById("dzpznr").innerhtml)
    output.show(vbcrlf & vbcrlf)
Next

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 16:51:00 [显示全部帖子]

看前面的 GetElementById 和 GetElementsByTagName,如,这样获取

 

    output.show(web1.Document.GetElementById("dzpznr").GetElementsByTagName(“H1")(0).innerText)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 17:32:00 [显示全部帖子]

    output.show(web1.Document.GetElementById("dzpznr").GetElementsByTagName("Li")(0).innerText)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 17:41:00 [显示全部帖子]

        output.show(web1.Document.GetElementById("dzpznr").GetElementsByTagName("UL")(1).innerText)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/25 9:25:00 [显示全部帖子]

web.Document.GetElementById("currPage").innerText '当前页
web.Document.GetElementById("totalCount").innerText '总条数
[此贴子已经被作者于2015/11/25 9:25:57编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/25 10:50:00 [显示全部帖子]

以下是引用ap9709130在2015/11/25 10:49:00的发言:

大红袍老师

 

这类的信息哪里可以学习到。比如你给我们这些参数像:currPage,totalCount,哪里可以找到?

 

浏览器那里,右键->查看源、检查元素


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/25 12:14:00 [显示全部帖子]

呃,总页数就是总行数除以15,然后取整数

 

http://www.foxtable.com/help/topics/0272.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/26 16:21:00 [显示全部帖子]

测试了一下,成功到达2300页啊。你的报什么错。

 

Dim web As new System.Windows.Forms.WebBrowser
web.Navigate("http://125.35.6.80:8080/ftba/fw.jsp")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl").count > 0
    Application.DoEvents
Loop


For i As Integer = 2 To 2300
    output.show(i)
    Dim tstr As String = web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerHtml
    web.Document.GetElementById("pageIto_first" & i).InvokeMember("Click")
    Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerhtml <> tstr
        Application.DoEvents
    Loop
    output.show(i & "   " & web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerhtml )
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/26 17:36:00 [显示全部帖子]

没办法翻到那一页,必须慢慢查到2274,后,再继续执行你接收的代码

 

Dim web As new System.Windows.Forms.WebBrowser
web.Navigate("http://125.35.6.80:8080/ftba/fw.jsp")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl").count > 0
    Application.DoEvents
Loop


For i As Integer = 7 To 2274 step 3
    output.show(i)
    Dim tstr As String = web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerHtml
    web.Document.GetElementById("pageIto_first" & i).InvokeMember("Click")
    Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerhtml <> tstr
        Application.DoEvents
    Loop
    output.show(i & "   " & web.Document.GetElementById("FileItems").GetElementsByTagName("dl")(0).innerhtml )
Next

 

'''''然后继续你获取的代码


 回到顶部
总数 15 1 2 下一页