以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 网页数据采集问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=57167)

--  作者:lqf168
--  发布时间: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 块变量。


--  作者:有点甜
--  发布时间:2014/9/19 15:10:00
--  

 改成

 


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


--  作者:lqf168
--  发布时间:2014/9/19 15:26:00
--  
谢谢有点甜,可以了。
--  作者:新福星
--  发布时间: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))”,怎么解决?

--  作者:有点甜
--  发布时间:2015/1/11 9:58:00
--  

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


--  作者:有点甜
--  发布时间: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)