Verwenden Sie Excel\VBA, um Informationen von Webseiten zu extrahieren
<p>Ich versuche, Daten von einer Webseite zu extrahieren. Ich benötige 4 Datenbits, von denen ich 2 abrufen konnte, aber die anderen 2 wurden mir bereits angezeigt. </p>
<p>Dies ist keine feste URL, sondern wurde nach der Umleitung vom IE abgerufen. Daher verwende ich für dieses Beispiel:
https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808
</p>
<p>Ich hoffe, den Titel zu bekommen:</p>
<p><strong>Microprint P2010 No-Clean, bleifreie Lotpaste, 15-32 um, 250-g-Glas - MICROPRINT P2010 15-32UM, 250 g</strong></p>
<p>und Herstellerteilenummer</p>
<p><strong>Microprint P2010 15-32UM, 250G</strong></p>
<p>Ich habe <strong>getElementbyID</strong> verwendet, um die Produktübersicht/Produktinformationen zu erhalten, und es funktioniert großartig, aber die anderen Textfelder scheinen nicht zu funktionieren (ich habe mir den Xpath angesehen und es Fehler bei Objekt) VBE erforderlich)</p>
<p>Die anderen beiden Elemente habe ich erfolgreich implementiert mit: </p>
<pre class="brush:php;toolbar:false;">Sub Mani()
'Variablen deklarieren
Dim objWeb als Objekt
Dim objHTML als Objekt
Dimmen Sie objElement als Objekt
Dimmen Sie strData, StrData1 als String
Setze objWeb = CreateObject("internetexplorer.Application")
str = "https://cpc.farnell.com/"
objWeb.navigate str &
Während objWeb.Busy = True
Wend
FullURL = objWeb.LocationURL
Range("b2").Value = FullURL
objWeb.navigate FullURL
'IE.Visible = True
Während objWeb.Busy = True
Wend
Legen Sie objHTML = objWeb.document fest
strData = objHTML.getElementById("pdpSection_FAndB").innerText
ActiveSheet.Range("C3").Value = strData
strData = objHTML.getElementById("pdpSection_pdpProdDetails").innerText
Setze strData = Nothing
ActiveSheet.Range("D3").Value = strData
objWeb.Quit
End Sub</pre>
<p>URL-Neuladen dient der Navigation um URL-Weiterleitungen, </p>
<p>https://cpc.farnell.com/SD02808</p>
<p>Weiterleitung zur Haupt-URL</p>
<p>https://cpc.farnell.com/warton/microprint-p2010-15-32um-250g/solder-paste-15-32um-250g-pot/dp/SD02808</p>
<p>Ich möchte die Teilenummer in A1 eingeben, Excel sie als Variable in VB verwenden und dann die vollständige URL aus der IE-Instanz erneut lesen.
Hierbei handelt es sich um ein Legacy-Problem bei dem Versuch, <strong>Get Data from the Web</strong> zu verwenden, das aufgrund eines Seitenskriptfehlers nicht richtig funktionierte, sodass eine Instanz von IE verwendet wurde. </p>