以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  狐狸爸爸帮忙,网页抓取数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71873)

--  作者:道城
--  发布时间:2015/7/19 21:42:00
--  狐狸爸爸帮忙,网页抓取数据问题

 网页数据采集求教

数据来源网页:


http://vip.stock.finance.sina.com.cn/mkt/#all_forex

 

获取数据代码:

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://vip.stock.finance.sina.com.cn/mkt/#all_forex")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
MessageBox.Show("等待数据加载完成")
Dim elems As object = web.Document.GetElementById("tbl_wrap").GetElementsByTagName("tr")
MessageBox.Show("共获取 " & elems.count-1 & " 条数据")

……省略代码

以上代码能正常获取该网页的40条数据.

需要帮助的问题,请教如何才能一次性采集到此表中所有64条数据.
或者在执行代码时如何模拟执行点击网页中"每页显示"后面的80,让其先读取所有数据后再时行采集.

 


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


--  作者:大红袍
--  发布时间:2015/7/20 9:45:00
--  

 

[此贴子已经被作者于2015/7/20 9:47:03编辑过]

--  作者:大红袍
--  发布时间:2015/7/20 9:52:00
--  

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://vip.stock.finance.sina.com.cn/mkt/#all_forex")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
MessageBox.Show("等待数据加载完成")

Dim elems As object = web.Document.GetElementById("list_amount_ctrl").GetElementsByTagName("a")
For Each elem As object In elems
    If elem.InnerText = "80" Then
        elem.InvokeMember("click")
    End If
Next

elems = web.Document.GetElementById("tbl_wrap").GetElementsByTagName("tr")
MessageBox.Show("共获取 " & elems.count-1 & " 条数据")