Saltar al contenido

Extracción de información de página web


Recommended Posts

Hola a tod@s

Hay la posibilidad de extraer información desde la siguiente página web?

https://autos.mercadolibre.cl/repuestos/soporte-motor

Ingresar a cada anuncio y extraer el contenido según el archivo "PRUEBA"?

Por ejemplo:

-Ingresando a la siguiente anuncio

https://articulo.mercadolibre.cl/MLC-471927238-soporte-lado-caja-mitsubishi-l200-4x4-2007-2015-_JM?quantity=1#position=1&type=item&tracking_id=d75e5bc0-7e51-41ea-8dab-47605e7b5896

Para extraer el contenido de "NOMBRE DE TIENDA" esta se encuentra en la sección "Información sobre el vendedor" en donde hay un enlace "Ver más datos de este vendedore ingresando al enlace se puede extraer el nombre de la tienda para este caso seria "REPUESTOSDELSOLCL", luego cerrar la pagina

Para el caso de la Descripción esta es "Soporte Lado Caja Mitsubishi L200 4x4 2007 2015" que se puede ver a simple vista en la parte derecha del primer anuncio

En la página del primer anuncio hay un apartado de "características" que aveces detalles y otras no. Solo en caso de que halla información en ese apartado solo extraer los siguientes datos como : POSICIÓN, MARCA, MODELO, NUMERO DE PIEZA, OEM. En este caso solo hay informacion de marca: Mitsubishi y moldeo: L200

Para extraer el precio esta se encuentra por debajo de la descripción que en este caso es: 20990 (tener en cuenta el separador de decimales) 

Por ultimo copiar el enlace del anuncio que para este caso es https://articulo.mercadolibre.cl/MLC-471927238-soporte-lado-caja-mitsubishi-l200-4x4-2007-2015-_JM?quantity=1#position=1&type=item&tracking_id=d75e5bc0-7e51-41ea-8dab-47605e7b5896

No se si es posible todo esto, en caso no sea se agradece por su tiempo

Saludos

 

PRUEBA.xlsx

Enlace a comentario
Compartir con otras webs

En 15/7/2020 at 20:54 , avalencia dijo:

Hola

Sugiero usar el buscador del foro y colocar "web scraping" y vayas viendo con paciencia cada post y sus respuestas. Saludos.

Hola @avalencia

Gracias por ese dato, estoy aprendiendo tutoriales de Web scraping con Webscraper.io

Saludos

Enlace a comentario
Compartir con otras webs

  • 2 weeks later...
  • 2 weeks later...
En 1/8/2020 at 6:59 , José_Santos dijo:

@CarlosKurt En el curso que comenta @Sergio vemos cómo extraer información de páginas similares, incluso vemos cómo descargar las imágenes.

Las extracciones las hacemos con VBA.

Saludos.

Dejando de lado el complemento de google: Free Web Scraping, que me ha facilitado mucho extraer información de la web. Sin embargo, atraves de Vba Excel la extracción de información es mas rápida y fiable.
Tome prestado la planilla que publican de tienda Falabella de @José_Santos y lo adapte al mio. Realmente solo pude completar una parte ? el cual fue obtener el ID y la direccion de la pagina web de cada producto de la primera pagina; que fue sencillo, observando y reemplazando algunas detalles como si fuese a grabar una macro. Luego me resulto complicado extraer el producto, marca, precio etc. Estudie algunos conceptos de getElementById, getElementsByTagName, getElementsByClassName, getElementsByName a paso rápido pero sin obtener resultados. Bueno es por que necesito mas tiempo para aprender todo esto de web scraping de manera autodidacta. Por si alguien puede ayudar en corregir el codigo Vba Excel para extraer informacion de precio, producto, etc y de sus demas paginas estaria muy agradecido.

Saludos

 

PD: Perdonen el error de no publicar en el foro correcto que es Macros y programación VBA

prueba.xlsm

Enlace a comentario
Compartir con otras webs

Hola a tod@s

En el archivo adjunto logre armar el código para la extracción de información de una pagina web, la paginación de la misma y detalles de cada producto. La estructura del código es poco estética debido al poco conocimiento de VBA Excel que tengo pero gracias al archivo que publico @José_Santos pude lograrlo; modificando detalles y adaptándolo a mi proyecto. Obviamente faltan muchas cosas por mejorar como por ejemplo:

-Cada producto publicado (Sección detalles de la macro) en la página web al menos muestran tres imagenes, sin embargo en algunos casos muestran una sola imagen como la siguiente página: "https://articulo.mercadolibre.cl/MLC-520011440-pistones-forjados-iapel-honda-civic-accord-integra-k20-_JM#position=52&type=item&tracking_id=2dad53d4-523b-42eb-a858-994382e12a62", en esta no he podido extraer el link de la imagen. Supuse que es la posición de la etiqueta "img", intente probar de varias manera que hasta ahora no he podido extraerlo. 

-No entiendo por que en algunos casos corre correctamente la macro y en otras no, siendo de la misma web, por ejemplo: Si quiero extraer informacion del siguiente link https://listado.mercadolibre.cl/pistones-componentes#D[A:pistones componentes,L:undefined] la macro no funciona corre pero en la https://autos.mercadolibre.cl/repuestos/motores/pistones-com_NoIndex_True corre perfectamente. 

Tengo mas preguntas que supongo que con el tiempo iré descubriendo su respuesta a medida que voy aprendiendo. Si a alguien le sirve el archivo enhorabuena y si alguien sabe como mejorar el código y explicarlo estaría muy agradecido que de paso aprendo mucho más.

Saludos  

prueba.xlsm

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.