Importieren Sie Webdaten mit Excel VBA
Ich möchte, dass beim Importieren einer Website-URL eines Produkts der Name, die Beschreibung, der Preis und die Bild-URL des Produkts in einer Tabelle angezeigt werden.
Folgendes habe ich: (nicht die echte Website)
Sub Trial() Dim ieObj As InternetExplorer Dim ht As HTMLDocument
Website = "https://www.amazon.com/resistencia-Avalon-cartas-empaque-original/dp/B009SAAV0C?pf_rd_r=WWESR922Z214Y10K3PHH&pf_rd_p=4dd821c0-e689-433a-a035-5e03461484eb&pd_rd_r=305599f9-5f3f-41c6-9a13-8daefd8d998c&pd_rd_w=qWHso&pd_rd_wg=BNzqC&ref_=pd_gw_unk"
Set ieObj = New InternetExplorer ieObj.Visible = True ieObj.navigate Website
Do Until ieObj.readyState = READYSTATE_COMPLETE DoEvents Loop
Set ht = ieObj.document
End Sub
Zusätzliche Informationen
Name des Produkts: Der Widerstand: Avalon Social Deduction Gam
id = "productTitle" class = "a-size-large product-title-word-break"
Produktbeschreibung: The Resistance: Avalon ist ein eigenständiges Spiel, für das The Resistance nicht erforderlich ist. Die Spiele sind kompatibel und können kombiniert werden.
Für 5 bis 10 Spieler.
Spielzeit 30 Minuten.
(Alle in der Klasse = "a-list-item", aber verschiedene Abschnitte.)
Preis: $ 17.12
id = "priceblock_ourprice"
class = "a-size-medium a-color-price priceBlockBuyingPriceString"
Bild URL: https://images-na.ssl-images-amazon.com/images/I/91JhcC33dTL._AC_SY879_.jpg
img alt = "Der Widerstand: Avalon Social Deduction Game"
Antworten
Sie können xhr anstelle von IE verwenden, um die oben genannten Felder abzurufen. Dies beschleunigt die Ausführung auf jeden Fall und spart Ihnen viel Zeit. Ich habe Regex nur verwendet, um den gewünschten Bildlink zu isolieren. Stellen Sie sicher, dass Sie Microsoft HTML Object Libraryvor der Ausführung zur Referenzbibliothek hinzufügen .
Sub GetContent()
Const URL = "https://www.amazon.com/resistencia-Avalon-cartas-empaque-original/dp/B009SAAV0C?pf_rd_r=WWESR922Z214Y10K3PHH&pf_rd_p=4dd821c0-e689-433a-a035-5e03461484eb&pd_rd_r=305599f9-5f3f-41c6-9a13-8daefd8d998c&pd_rd_w=qWHso&pd_rd_wg=BNzqC&ref_=pd_gw_unk"
Dim S$, sImage$, Matches As Object
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:79.0) Gecko/20100101 Firefox/79.0"
.send
S = .responseText
End With
With New HTMLDocument
.body.innerHTML = S
[A1] = .querySelector("h1#title > span#productTitle").innerText
[B1] = Trim(Split(.querySelector("#feature-bullets > ul.a-unordered-list").innerText, "model number.")(1))
[C1] = .querySelector("span[id='priceblock_ourprice']").innerText
sImage = .querySelector("#imgTagWrapperId > img").getAttribute("data-a-dynamic-image")
End With
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = False
.Pattern = """(.*?)"""
.MultiLine = True
Set Matches = .Execute(sImage)
[D1] = Matches(2).submatches(0)
End With
End Sub