Extraer el Precio de un producto de Amazon

Tengo una hoja de calculo con 30 productos (más o menos de Amazon), encontré un código que en teoría, podía hacer que yo pudiera extraer el precio del producto, ya que es lo que necesito. Pero no me funcionó.

Adjunto el código:

Sub StartUpdateProcess()
' Almacenamos la seleccion del usuario
Set a = Selection
' Por cada celda seleccionada voy a consultar los precios de dicha celda
For Each b In a.Rows
MakeHTTPRequest Sheets("Hoja1").Range(b.Address).Value, Range(b.Address).Row
Next

End Sub

Private Function MakeHTTPRequest(url As String, rownumber As Integer)

Dim ResponseHTML As HTMLDocument
Dim oElement As Object
'Inicializo la variable donde almacenamremos toda la respuesta HTML
Set ResponseHTML = New HTMLDocument
'Definir un tipo de objeto que nos permitira realizar la conexion
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
'Definimos la conexion de tipo GET
objHTTP.Open "GET", url, False
'Definimos la cabecera user agent
'objHTTP. SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
'Realizamos la petición real a la página de Amazon
objHTTP.send ("")
'Almacenamos el HTML resultante
ResponseHTML.body.innerHTML = objHTTP.responseText
'Contador que usamos para poder navegar por cada precio
Dim counter
counter = 0
'Tratamos cada elemento dentro de dicha clase
ThreatEachelement ResponseHTML, oElement, rownumber
End Function

Function ThreatEachelement(ResponseHTML As HTMLDocument, oElement As Object, rownumber As Integer)

For Each oElement In ResponseHTML.getElementsByClassName("a-spacing-small olpSellerName")(counter).innerText
currentprice = ResponseHTML.getElementsByClassName("a-size-large a-color-price olpOfferPrice a-text-bold")(counter).innerText
Sheets("Hoja1").Cells(rownumber, counter + 2).Value = currentprice
counter = counter + 1
Next oElement
End Function

Y tengo un botón que llama al StartUpdateProcess.

Lo que no tengo claro, es como hacer para que al momento de dar click al botón, automáticamente me muestre el precio de la página principal del link.

Así es como tengo actualmente la hoja, pero me da un error, ya que no encuentro de que forma poder extraer dicho precio.

1 Respuesta

Respuesta
1

Lo primero es que en tu editor de VBA (VBE) tienes que activar la referencia a "Microsoft HTML Object Library" para poder usar esos códigos.

Otra cosa importante es que los objetos de web mencionados en la UDF "ThreatEachelement", si no existen tal cual como ahí los mencionan, pues no extraerás los datos que deseas. Ah, del mismo modo los enlaces que tienes en tu hoja deben ser exactos.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas