【发布时间】:2020-04-11 08:29:24
【问题描述】:
我的问题与其他问题 VBA - Select HTML item using VBA 有关。如何在没有 Internet Explorer 的情况下使用 XMLHttpRequest 选择并单击 data-id 属性值?
到目前为止,我的代码如下所示:
Sub Data_multi()
Dim http As New XMLHTTP60, html As New HTMLDocument
Dim topic As HTMLHtmlElement
Dim i As Integer
For i = 1 To 4 'last page
Application.ScreenUpdating = False
With http
.Open "GET", "https://www.castorama.ru/building-materials/building-dry-materials-and-primers?limit=96&p=" & i, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.send
Do: DoEvents: Loop Until .readyState = 4
html.body.innerHTML = .responseText
End With
For Each topic In html.getElementsByClassName("product-info")
With topic.getElementsByClassName("product-name")
If .Length Then x = x + 1: Cells(x, 1) = .item(0).innerText
End With
With topic.getElementsByClassName("price")
If .Length Then Cells(x, 2) = .item(0).innerText
End With
Next topic
Next i
Application.ScreenUpdating = True
End Sub
提前致谢
【问题讨论】:
-
点击不会对 xmlhttp 做任何事情。你追求的最终结果是什么?您希望获得特定商店的结果吗?
-
非常感谢您的耐心等待,QHarr。是的,我希望在 id=48 的存储中抓取数据,但当前代码只能抓取默认存储的结果(“Москва, Новорязанское ш.”)。
标签: excel vba web-scraping xmlhttprequest