我已经在VBA中创建了一个脚本来从网页中获取特定项目。我感兴趣的项目(Year Built
)的值并不总是在同一索引中,因此在这里使用索引是错误的主意。我在下面给出两个链接仅仅是因为项目的值在两个网页中的索引不同。
我最初获取价值的方法是:
.NextSibling.getElementsByTagName("td")(3).innerText
我追求的值显示为:
我现在正在尝试的方法(可以工作,但位置仍然是假设的,如果位置发生变化,它将中断):
.NextSibling.LastChild.PreviousSibling.innerText
到目前为止,我已经创建了:
Sub GetInformation()
Dim Http As New XMLHTTP60,links,i&
Dim Htmldoc As New HTMLDocument,link
Dim Wb As Workbook,ws As Worksheet,r&
Set Wb = ThisWorkbook
Set ws = Wb.Worksheets("Sheet1")
links = Array( _
"https://esearch.brazoscad.org/Property/View/114414",_
"https://esearch.brazoscad.org/Property/View/117608" _
)
For Each link In links
With Http
.Open "GET",link,False
.send
Htmldoc.body.innerHTML = .responseText
End With
With Htmldoc.querySelectorAll("tr")
For i = 0 To .Length - 1
If InStr(.item(i).innerText,"Year Built") > 0 Then
r = r + 1: ws.Cells(r,1) = .item(i).NextSibling.LastChild.PreviousSibling.innerText
End If
Next i
End With
Next link
End Sub
如何从网页上获得商品的特定价值?
顺便说一句,如果.querySelector()
支持:nth-of-type()
,那么当我在无法使用的脚本中使用.querySelector("table:nth-of-type(2) tr")
时,怎么了?{p}