Ich versuche, alle href
Links von Produkten von this link zu kratzen.VBA: Suche nach verschachtelten Elementen in HTML Dokument
ich den folgenden Code bin mit dem Produkt Link auf der Seite zu bekommen:
Sub urlCatch()
Dim internet As Object
Dim internetdata As Object
Dim div_result As Object
Dim header_links As Object
Dim link, itm As Object
Dim url As String
Dim X As Variant
Set internet = CreateObject("InternetExplorer.Application")
internet.Visible = True
url = "http://www.dell.com/vg/p/desktops.aspx?c=vg&cs=vgdhs1&l=en&s=dhs&~ck=mn"
internet.Navigate url
Do Until internet.ReadyState >= 4
DoEvents
Loop
Set internetdata = internet.document
Set div_result = internetdata.getelementsbyclassname("categorySubNavigation").getelementsbyclassname("c4 seriesOptions")
Set header_links = div_result.getelementsbytagname("a")
For Each itm In header_links
Set link = itm.ChildNodes.Item(0)
Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1) = link.href
Next
End Sub
ich einen Fehler bei div_reult bin immer: „Objekt nicht diese Eigenschaft oder Methode“.
Dies ist das erste Mal, dass ich ein Element bin mit etwas holen, vielleicht könnte ich Fehler werden zu machen, die ich zur Zeit aus nicht bewusst bin.
Bitte schauen Sie in meinem Code, und lassen Sie mich wissen, welche Fehler ich hier mache.
Ich bin von einem meiner Freunde gesagt, dass ich brauchen könnte einen regulären Ausdruck verwenden, um alle diese Links zu erhalten, aber ich wollte zuerst ein Halten dieser Methode erhalten.
Bitte geben Sie mir einige Hinweise. Vielen Dank.
versuchen, ein "Application.Wait Timeserial (Stunde (Now()), Minute (Now()), zweites (Now()) + 10)" nur hinzufügen, bevor Sie „internetdata = Internet .document "warten Sie 10 Sekunden vor Ihrem Set und prüfen Sie, ob es funktioniert. Wenn das Element in der Webseite existiert, ist es wahrscheinlich, dass Sie es nicht bekommen, weil die Webseite noch nicht richtig geladen wurde und Sie es nicht in Ihrem Dokument haben, wenn Sie versuchen, es zu kratzen –
@ Matteo NNZ Ich versuchte Wartezeit too..still gibt es denselben Fehler. Ich weiß es nicht, aber ich habe das Gefühl, dass ich bei div_result booboo mache ... Vielleicht verstehe ich es nicht richtig ... Ich weiß einfach nicht warum. –
'internetdata.getelementsbyclassname („categorySubNavigation“)' ist eine Sammlung von Tags ... gibt es nur einen so können Sie indizieren (kein Looping erforderlich). 'set div_result = internetdata.getElementsByClassName (" KategorieSubNavigation ") (0) .getElementsByClassName (" c4 seriesOptions ")' .... das gibt auch eine Sammlung zurück, also muss man 'div_result (0) ... div_result (1) ... etc' – jsotola