Foxtable(狐表)用户栏目专家坐堂 → [求助] 网页数据采集问题


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

主题:[求助] 网页数据采集问题

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


加好友 发短信
等级:幼狐 帖子:142 积分:3381 威望:0 精华:0 注册:2012/1/14 14:34:00
[求助] 网页数据采集问题  发帖心情 Post By:2014/9/19 14:55:00 [只看该作者]

之前银行外汇牌价的例子,通过网页采集数据
问题:无法采集数据,如何改?
采集按钮代码:
Dim ObjIE As Object
Dim Dom As Object
Dim R As Object
ObjIE = CreateObject("internetexplorer.application")

With ObjIE       
    .Navigate("http://www.boc.cn/sourcedb/whpj",True)
    Do While .ReadyState <> 4
        Application.DoEvents
    Loop
    Dom = .Document
StatusBar.Message1=" 正在采集,请稍候.... "
    R = Dom.All.tags("table")(7).Rows
        Dim Tbl As Table = Tables("外汇牌价分析表")
             For i As Integer = 1 To R.Length-1
                Dim TmpRow As Row = Tbl.AddNew
                 For j As Integer  = 0 To R(i).Cells.Length - 1
                   TmpRow(Tbl.Cols(j).Name) = R(i).Cells(j).innerText
                 Next
             Next
        Tbl.AutoSizeCols
         .quit
End With
StatusBar.Message1=" 采集完成 "


运行到:
    R = Dom.All.tags("table")(7).Rows
就报错:
未设置对象变量或 With 块变量。


.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.9.19.1
错误所在事件:窗口,数据采集,Button2,Click
详细错误信息:
未设置对象变量或 With 块变量。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/19 15:10:00 [只看该作者]

 改成

 


    R = Dom.All.tags("table")(1).Rows


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


加好友 发短信
等级:幼狐 帖子:142 积分:3381 威望:0 精华:0 注册:2012/1/14 14:34:00
  发帖心情 Post By:2014/9/19 15:26:00 [只看该作者]

谢谢有点甜,可以了。

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15502 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2015/1/11 6:15:00 [只看该作者]

......

  Dim Tbl As Table = Tables("外汇牌价分析表")
             For i As Integer = 1 To R.Length-1
                Dim TmpRow As Row = Tbl.AddNew
                 For j As Integer  = 0 To R(i).Cells.Length - 1
                   TmpRow(Tbl.Cols(j).Name) = R(i).Cells(j).innerText
                 Next
             Next
        Tbl.AutoSizeCols
         .quit
End With
StatusBar.Message1=" 采集完成 "

执行到语句  .quit  就出错了 “未指定的错误 (异常来自 HRESULT:0x80004005 (E_FAIL))”,怎么解决?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/11 9:58:00 [只看该作者]

 呃,不应该,你可以不quit的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/11 10:02:00 [只看该作者]

 或者可以用webbrowser

 

Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=59316")
 
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

 

output.show(web.Document.Body.InnerText)


 回到顶部