gpt4 book ai didi

vba - 从网站提取数据到excel错误

转载 作者:行者123 更新时间:2023-12-04 21:52:30 25 4
gpt4 key购买 nike

我在设置从网站到 Excel 的数据提取时遇到了困难。
我想提取产品的确切价格以脱颖而出。
到目前为止,我有这个代码:

Sub GetData()

Dim objIE As InternetExplorer 'Microsoft Internet Controls library added
Dim itemEle As Object
Dim data As String
Dim y As Integer

Set objIE = New InternetExplorer
objIE.Visible = True

objIE.navigate "https://www.nay.sk/samsung-ue55nu7172"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

y = 1

For Each itemEle In objIE.document.getElementsByClassName("price")
data = itemEle.getElementsByClassName("price")(0).innerText
y = y + 1
Next
data = Range("A1").Value
End Sub

你有什么建议?

最佳答案

你想要每一个价格吗?

例如,您可以通过以下方式列出前两个:

Option Explicit
Public Sub GetInfo()
Dim sResponse As String, i As Long, html As New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.nay.sk/samsung-ue55nu7172", False
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))
Dim titles As Object, prices As Object
With html
.body.innerHTML = sResponse
Set titles = .querySelectorAll(".title")
Set prices = .querySelectorAll(".price")
End With
For i = 0 To 1
Debug.Print titles(i).innerText & prices(i).innerText
Next i
End Sub

该循环返回您这些:

data

实际上,页面上的所有元素都带有 price类存储在对象 prices .

您可以通过循环该对象/节点列表的长度来查看所有价格:
For i = 0 To prices.Length - 1
Debug.Print Prices.item(i).innerText
Next i

同样,您可以循环 .Lengthtitles但请注意,它与 prices 的长度不同.页面上有更多价格(或者更确切地说,具有 price 类的元素与具有 title 类的元素相比。

引用资料(VBE>工具>引用资料):
  • HTML 对象库
  • 关于vba - 从网站提取数据到excel错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51499327/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com