查了专家坐堂,搞了一天一点思路都没有,还是请教老师,谢谢
网址:http://www.hzctc.cn/OpenBidRecord/Index?id=36177CC9-5F91-473F-84E6-A2EFA35D6DD9&tenderID=969B1A8D-1A57-4A21-864F-A5E98F8288FB&ModuleID=486

此主题相关图片如下:8888.png


此主题相关图片如下:33333.png

[此贴子已经被作者于2018/7/20 20:50:53编辑过]
下面代码出错,如何调整?谢谢
Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=36177CC9-5F91-473F-84E6-A2EFA35D6DD9&tenderID=969B1A8D-1A57-4A21-864F-A5E98F8288FB&ModuleID=486")
Do Until web.ReadyState = 4
Application.DoEvents
Loop
'取数据
Dim Cols() As String = {"序号","投标企业","总监姓名","总报价","质量标准","中标工期","开标情况备注"}
Dim elems As object = web.Document.GetElementsByTagName("table1")(1).GetElementsByTagName("tr")
Dim m As Integer = 0
For Each elem As object In elems
Dim i As Integer = -1
m = m + 1
If m > 10 Then '因为网页的表格有标题,如果不判断,就会增加出一个空行
Tables("开标标录").AddNew
End If
Dim tdelems As object = elem.GetElementsByTagName("td")
For Each tdelem As object In tdelems
i = i + 1
Tables("开标标录").Current(Cols(i)) = tdelem.Innertext
'Tables("开标标录").Current("录入时间") = Date.Now
Next
Next
Tables("开标标录").save
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.23.1
错误所在事件:窗口,网页数据抓取,Button1,Click
详细错误信息:
“1”的值对于“index”无效。“index”应介于 0 和 -1 之间。
参数名: index
还是不对,你帮我调试一下。

此主题相关图片如下:99999924119.png

[此贴子已经被作者于2018/7/20 22:40:10编辑过]
还是错的,能否帮我调试一下,我已上传了实例,谢谢
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.23.1
错误所在事件:窗口,网页数据抓取,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。
没有时间去帮你们分析网页,自食其力
所有getelementbyid、GetElementsByTagName这些方法返回的对象都先判断一下是否是空值,或者是空数组
dim obj = Document.getelementbyid("Table1")
if obj isnot nothing then
dim trs = obj.GetElementsByTagName("tr")
if trs.length > 0 then
其它处理
end if
end if
有点甜老师:
搞了二天还是搞不出来,对网页这方面的知识根本没有,能否帮我写一下,谢谢
参考代码,自己看懂和调整细节
Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://www.hzctc.cn/OpenBidRecord/Index?id=36177CC9-5F91-473F-84E6-A2EFA35D6DD9&tenderID=969B1A8D-1A57-4A21-864F-A5E98F8288FB&ModuleID=486")
Do Until web.ReadyState = 4 AndAlso web.Document.GetElementById("Table1") IsNot Nothing
Application.DoEvents
Loop
Dim elems As object = web.Document.GetElementsByTagName("div")
For Each elem As object In elems
If elem.getattribute("classname") = "row cl" Then
If elem.InnerText.contains("工程编号") Then
msgbox(elem.GetElementsByTagName("span")(0).innerText)
ElseIf elem.InnerText.contains("建设单位") Then
msgbox(elem.GetElementsByTagName("span")(0).innerText)
End If
End If
Next
elems = web.Document.GetElementById("Table1").GetElementsByTagName("tr")
For i As Integer = 1 To elems.count-2
Dim tds = elems(i).getelementsbytagname("td")
msgbox(tds(0).InnerText & " " & tds(1).InnerText)
Next