Parser de datos SEO de páginasDesarrollo y personalización

Un parser de Python que guarda en una tabla los datos SEO de las páginas de una web: title, description, H1, estado, canonical

Suele estar listo en 15 minutosCambios incluidosControl de calidad
Paquetes
Protección de pagoDetalles
  • Los cambios dentro del paquete son gratuitos.
  • Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.

El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Un parser de Python que guarda en una tabla los datos SEO de las páginas de una web: title, description, H1, estado, canonical

Ejemplo de resultado

Ejemplo del paquete Estándar

Parser del catálogo de un proveedor de herramientas de jardín a Excel

Cómo queda el resultado

ReferenciaNombrePrecioDisponiblePesoFoto
GT-1042Tijeras de podar, 20 mm18,90Sí0,24 kg…/gt-1042.jpg
GT-1187Sierra plegable, 210 mm24,50Sí0,31 kg…/gt-1187.jpg
GT-2210Tijeras para setos, hoja ondulada39,00No1,10 kg…/gt-2210.jpg
GT-3305Pala de mano, acero inoxidable9,80Sí0,18 kg…/gt-3305.jpg
GT-4120Manguera de jardín 25 m, 1/2"42,00Sí2,90 kg…/gt-4120.jpg

El archivo del ejemplo tiene 1.236 productos de 52 páginas de lista.

Una parte del código

def product_links(list_url: str) -> Iterator[str]:
    """Enlaces a las páginas de producto de todas las páginas de la lista, siguiendo 'Siguiente'."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Una página abierta, a un ritmo prudente: una pausa entre peticiones y algunos reintentos si hay errores."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s respondió %s, intento %d de 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} no se abrió tras 3 intentos")

Archivos: un archivo ZIP con scraper.py, settings.ini (la página inicial, la pausa entre peticiones, el nombre del archivo), requirements.txt y un README sobre cómo instalarlo y ejecutarlo. Solo lee páginas abiertas, una cada 2 segundos, y antes consulta el robots.txt de la web. El cliente lo ejecuta en su propio ordenador.

Cliente: una tienda de jardinería en línea que revende las herramientas de un proveedor; el proveedor tiene un catálogo abierto en su web, pero ningún archivo con la lista de precios. Tarea: recorrer las páginas de lista del catálogo, abrir cada página de producto y guardar en Excel la referencia, el nombre, el precio, la disponibilidad, el peso y el enlace de la foto principal, para comparar precios una vez por semana.

El cliente y todos los datos son ficticios.

Acerca de este servicio

Antes de una migración o una revisión SEO, este parser recorre las páginas de una web y guarda una fila por cada una: dirección, código de respuesta, title y meta description con su longitud, H1, número de H2, enlace canonical, etiqueta noindex, número de palabras, imágenes sin texto alt y número de enlaces internos. Toma las direcciones del archivo sitemap de la web, de las páginas de categoría o de su propia lista. Úselo con su propia web o con la web abierta de un competidor. Envíenos la dirección de la web, algunas páginas guardadas desde su navegador y los campos que necesita. Recibe código Python, un archivo de configuración y un README y lo ejecuta en su ordenador. Recoge datos, no arregla la web y no promete posiciones en buscadores. Lee solo páginas abiertas a un ritmo prudente y nunca inicia sesión ni se salta captchas o protecciones. Usted decide si las condiciones de una web lo permiten; un cambio posterior de estructura requiere una actualización.

Qué incluye

  • Qué recibeUn archivo ZIP con el código Python, un archivo de configuración y un README con instrucciones paso a paso; el código también se muestra en la página del pedido.
  • Etiquetas y su longitudTitle y description con número de caracteres
  • Códigos de respuestaDetecte páginas rotas y redirigidas
  • Texto alt que faltaCuenta las imágenes sin texto alt
  • Desde el sitemap o su listaDirecciones del archivo sitemap, categorías o un archivo que usted dé
  • Ritmo prudenteUna pausa entre páginas, fijada en la configuración

Cómo funciona

  1. 1
    WebUsted da la web, el origen de las direcciones y páginas guardadas
  2. 2
    ParserEscribimos el código y la guía para ejecutarlo
  3. 3
    EjecuciónLo ejecuta y comprueba algunas filas en su navegador
  4. 4
    CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error

Qué necesitamos de usted

La dirección de la web y de dónde debe tomar el parser las direcciones: el archivo sitemap, las páginas de categoría o su propia lista. Cuántas páginas hay aproximadamente. Los campos que necesita, p. ej., dirección, código de respuesta, title, description, H1, canonical, noindex, número de palabras, imágenes sin alt. Dos o tres páginas de distintos tipos guardadas desde su navegador (Archivo > Guardar página como). CSV o Excel.

Le preguntaremos:

  • ¿Qué web?
  • De dónde tomar las direcciones
  • Los campos que necesita
  • ¿Cuántas páginas aproximadamente?

Comparar paquetes

PaquetesBásicoPáginas de su lista21 US$EstándarToda la web desde sus listas41 US$PremiumHasta 3 webs74 US$
Plazo1 día2 días3 días
Cambios123
Webs11hasta 3
Tipos de página12 (lista de páginas y página)hasta 3
Camposhasta 10hasta 25hasta 25 en cada una
Recorre las páginas de una listaNoSíSí
Archivo de resultadosCSVExcel o CSVExcel, CSV o JSON
Duplicados eliminados, reanuda donde se detuvoNoNoSí
Hacer pedido BásicoHacer pedido EstándarHacer pedido Premium

Protección de pago

Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.

  • Precio fijoEl precio del paquete no cambia después del pago.
  • El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
  • Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
  • Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
  • Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
  • Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Cómo funciona →

Preguntas y respuestas

¿Es una auditoría SEO completa?

No. Reúne los datos de cada página en una tabla; las conclusiones y las correcciones son cosa suya o de su desarrollador.

¿Puede comprobar mis posiciones en Google?

No. No lee Google, Amazon, LinkedIn ni redes sociales: sus condiciones lo prohíben. Las posiciones están en su cuenta de Search Console, en la que el parser nunca inicia sesión.

¿Qué tamaño de web puede recorrer?

Miles de páginas no son problema, pero a un ritmo prudente llevan horas. Premium reanuda donde se detuvo, así que una ejecución larga puede dividirse.

¿Puede leer una copia de prueba de mi web protegida con contraseña?

No. Lee solo páginas abiertas y nunca inicia sesión. Una copia de prueba abierta sin contraseña sirve, y las contraseñas nunca van en el código.

¿No encontró su respuesta?

Paquetes