Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True '出现脚本错误
web.Navigate("https://www.ccmn.cn/historyprice/cjxh_1/")
Do Until web.ReadyState = 4
Application.DoEvents
Loop
'取数据
Dim Cols() As String = { "序号","品名","价格区间","均价","涨跌","单位","发布日期" }
Dim elems As object = web.Document.GetElementById("list_elem").GetElementsByTagName("tr")
Dim m As Integer = 0
For Each elem As object In elems
Dim i As Integer = -1
m = m + 1
If m > 1 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.Today
If i > 2 Then '必须要当价格区间列已经有值,才能执行以下代码
Dim s As String = Tables("长江现货").Current("价格区间")
Dim s2 As String = s.SubString(5,1) '价格区间中间的横杠有点特殊,不是键盘上的短横杠.所以用Asc()函数和Chr(-24150))配合来引用.
Dim k As String = s.IndexOf(Chr(-24150)) '用Asc(s2)函数获得-的字符编码是-24150
Tables("长江现货").Current("最高价") = s.SubString(k+1)
Tables("长江现货").Current("最低价") = s.Remove(k)
End If
Next
Next
Tables("长江现货").save
这是从咱们论坛上找到的在长江现货网上自动提取数据的例子,但现在打不开了,应该是:web.Document.GetElementById("list_elem").GetElementsByTagName("tr")里list_elem和tr的名称现在不对了吧,那现在应该是什么呢,从网页上怎么查这个名称,还有后面的elem.GetElementsByTagName("td")里的td
以下是之前的例子,如何再能实现呢?