🎁 Descuento sorpresa: ¡Disfrute del 90 % de descuento en su suscripción!

⚡️ Nstproxy - Más de 110M de IPs para raspado y automatización a la velocidad del rayo, a partir de $0.1/GB.

  • Precios
  • Documentación
ES
Contacto

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Producto

Navegador antihuellas
Nstbrowser RPA
Omisión de Cloudflare
Browserless
Desbloqueador web

Solución

Navegador antihuellas basado en la nube
Gestión de múltiples cuentas
Raspado web
Detección anti-bots

Recurso

Precios
Descargar
Mercado de RPA
programa de afiliación
Socios
Blog
Notas de lanzamiento

Apoyo

Contacto

Documentación

Legal

Términos
política de privacidad
Política de cookies

ProductoSoluciónRecursoApoyoLegal

ProductoSoluciónRecurso

ApoyoLegal

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Volver a Blog
python rastreador web
Web Scraping

Python Web Crawler - Tutorial Paso a Paso 2024

Python proporciona capacidades de desarrollo de rastreadores web muy potentes y es uno de los lenguajes de rastreo más populares. Lee este artículo para aprender a utilizar Python para el rastreo web.
Jun 13, 2024Robin Brown

El rastreador web es una técnica poderosa que nos permite recopilar todo tipo de datos e información visitando páginas web y descubriendo URL en sitios web. Python cuenta con diversas bibliotecas y frameworks que admiten rastreadores web. En este artículo aprenderemos sobre:

  • Qué es un rastreador web en Python.
  • Cómo utilizar un rastreador web en Python y la API de Nstbrowser para rastrear páginas web.
  • Cómo lidiar con el bloqueo mientras se realiza el rastreo con Python.
  • Ejemplos de rastreo en Python.

¿Qué es un Rastreador Web en Python?

Python ofrece capacidades de desarrollo de rastreadores web muy potentes y es uno de los lenguajes de rastreo más populares disponibles en la actualidad. Un rastreador web en Python es un programa automatizado para navegar por un sitio web o Internet con el fin de raspar páginas web. Es un script en Python que explora páginas, descubre enlaces y los sigue para aumentar la cantidad de datos que se pueden extraer de sitios web relevantes.

Los motores de búsqueda dependen de robots rastreadores para construir y mantener sus índices de páginas, mientras que las herramientas de rastreo web los utilizan para acceder y encontrar todas las páginas para aplicar lógica de extracción de datos.

Los rastreadores web en Python se implementan principalmente mediante el uso de varias bibliotecas de terceros. Las bibliotecas comunes de rastreadores web en Python incluyen:

  1. urllib/urllib2/requests: Estas bibliotecas proporcionan funcionalidad básica de rastreo web, lo que le permite enviar solicitudes HTTP y recuperar respuestas.

  2. BeautifulSoup: Esta es una biblioteca para analizar documentos HTML y XML, que puede ayudar al rastreador a extraer información útil en la página web.

  3. Scrapy: Este es un poderoso framework de rastreo web que proporciona extracción de datos, procesamiento de canalizaciones, rastreo distribuido y otras características avanzadas.

  4. Selenium: Es una herramienta de automatización de navegadores web, que puede simular la operación manual del navegador. Este rastreador se utiliza siempre para rastrear el contenido de páginas dinámicas generado por JavaScript.

¿Siempre te bloquean al hacer raspaduras?
Desbloqueador web y soluciones contra la detección de Nstbrowser
¡Pruébalo GRATIS!
¿Tienes ideas y dudas interesantes sobre el web scraping y el Browserless?
¡Veamos qué comparten otros desarrolladores en Discord y Telegram!

4 Casos de Uso Populares de Rastreadores Web:

  1. Los motores de búsqueda (por ejemplo, Googlebot, Bingbot, Yandex Bot...) recopilan todo el HTML de las partes importantes de la web, los datos se indexan para que sean buscables.

  2. Las herramientas de análisis de SEO recopilan metadatos además de HTML, como el tiempo de respuesta y el estado de respuesta para detectar páginas rotas y enlaces entre diferentes dominios para recopilar enlaces de retroceso.

  3. Las herramientas de monitoreo de precios recorren sitios de comercio electrónico para encontrar páginas de productos y extraer metadatos, especialmente precios. Las páginas de productos son revisadas periódicamente.

  4. Common Crawl mantiene un repositorio abierto de datos de rastreo web. Por ejemplo, el archivo de mayo de 2022 contiene 3.45 mil millones de páginas web.

Entonces, ¿cómo utilizar la herramienta de automatización de Python Pyppeteer para el rastreo web?

¡Sigue desplazándote!

¿Cómo Raspar la Web con Pyppeteer y la API de Nstbrowser?

Paso 1. Requisitos previos

Hay algunas preparaciones que deben hacerse antes de poder comenzar a rastrear:

Shell Copy
pip install pyppeteer requests json

Después de instalar las bibliotecas necesarias anteriormente, cree un nuevo archivo scraping.py e introduzca las bibliotecas que acabamos de instalar, así como algunas bibliotecas de sistema en el archivo:

python Copy
import asyncio
import json
from urllib.parse import quote
from urllib.parse import urlencode

import requests
from requests.exceptions import HTTPError

from pyppeteer import launcher

Antes de usar pyppeteer, primero necesitamos conectarnos a Nstbrowser, que proporciona una API para devolver la webSocketDebuggerUrl para pyppeteer.

Python Copy
# get_debugger_url: Obtener la URL del depurador
def get_debugger_url(url: str):
    try:
        resp = requests.get(url).json()
        if resp['data'] is None:
            raise Exception(resp['msg'])
        webSocketDebuggerUrl = resp['data']['webSocketDebuggerUrl']
        return webSocketDebuggerUrl

    except HTTPError:
        raise Exception(HTTPError.response)

async def create_and_connect_to_browser():
    host = '127.0.0.1'
    api_key = 'tu clave de API'
    config = {
        'once': True,
        'headless': False,
        'autoClose': True,
        'remoteDebuggingPort': 9226,
        'userAgent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
        'fingerprint': {  # requerido
            'name': 'navegador personalizado',
            'platform': 'windows',  # soporte: windows, mac, linux
            'kernel': 'chromium',  # solo soporte: chromium
            'kernelMilestone': '120',  # soporte: 113, 115, 118, 120
            'hardwareConcurrency': 4,  # soporte: 2, 4, 8, 10, 12, 14, 16
            'deviceMemory': 4,  # soporte: 2, 4, 8
            'proxy': '',  # formato de entrada: schema://user:password@host:port por ejemplo: http://user:password@localhost:8080
        }
    }
    query = urlencode({
        'x-api-key': api_key,  # requerido
        'config': quote(json.dumps(config))
    })
    
    url = f'http://{host}:8848/devtool/launch?{query}'
    browser_ws_endpoint = get_debugger_url(url)
    
    print("browser_ws_endpoint: " + browser_ws_endpoint) # pyppeteer se conecta a Nstbrowser a través de browser_ws_endpoint

(
  asyncio
  .get_event_loop()
  .run_until_complete(create_and_connect_to_browser())
)

Después de obtener con éxito la webSocketDebuggerUrl de Nstbrowser, conecta pyppeteer a Nstbrowser:

Python Copy
async def exec_pyppeteer(wsEndpoint: str):
    browser = await launcher.connect(browserWSEndpoint = wsEndpoint)
    page = await browser.newPage()

Ejecuta el código que acabamos de escribir en la terminal: python scraping.py, y verás que hemos abierto con éxito un Nstbrowser y creado una nueva pestaña en el Nstbrowser.

¡Todo está listo, y ahora, podemos comenzar oficialmente el rastreo!

Paso 2. Visitar el sitio web objetivo

https://www.imdb.com/chart/top

Python Copy
await page.goto('https://www.imdb.com/chart/top')

Paso 3. Ejecutar el código

Ejecuta nuestro código una vez más y verás que hemos accedido a nuestro sitio web objetivo a través de Nstbrowser. Abre Devtool para ver la información específica que queremos rastrear y verás que son elementos con la misma estructura dom.

verifica el sitio web

Paso 4. Rastrear la página web

Podemos usar Pyppeteer para rastrear estas estructuras dom y analizar su contenido:

Python Copy
movies = await page.JJ('li.cli-parent')
for row in movies:
    title = await row.J('.ipc-title-link-wrapper')
    year = await row.J('span.cli-title-metadata-item')
    rate = await row.J('.ipc-rating-star')
    
    title_text = await page.evaluate('item => item.textContent', title)
    year_text = await page.evaluate('item => item.textContent', year)
    rate_text = await page.evaluate('item => item.textContent', rate)
    pringt('titile: ', title_text)
    pringt('year: ', title_text)
    pringt('rate: ', title_text)

Por supuesto, simplemente imprimir los datos en la terminal obviamente no es nuestro objetivo final, lo que queremos hacer es guardar los datos.

Paso 5. Guardar los datos

Utilizamos la biblioteca json para guardar los datos en un archivo local json:

Python Copy
movies = await page.JJ('li.cli-parent')
movies_info = []
for row in movies:
    title = await row.J('.ipc-title-link-wrapper')
    year = await row.J('span.cli-title-metadata-item')
    rate = await row.J('.ipc-rating-star')

    title_text = await page.evaluate('item => item.textContent', title)
    year_text = await page.evaluate('item => item.textContent', year)
    rate_text = await page.evaluate('item => item.textContent', rate)

    movie_item = {
        "title": title_text,
        "year": year_text,
        "rate": rate_text
    }
    movies_info.append(movie_item)

# crear el archivo json
json_file = open("movies.json", "w")
# convertir movies_info a JSON
json.dump(movies_info, json_file)
# liberar los recursos del archivo
json_file.close()

Ejecuta nuestro código y luego abre la carpeta donde se encuentra el código. Verás que aparece un nuevo archivo movies.json. Ábrelo para verificar el contenido. Si encuentras que se ve así:

almacenar el resultado

¡Eso significa que hemos rastreado con éxito el sitio web objetivo usando Pyppeteer y Nstbrowser!

4 Consejos para Resolver un Rastreador Python Bloqueado

El mayor desafío al hacer un rastreador web en Python es ser bloqueado. Muchos sitios web protegen su acceso con medidas anti-bots que reconocen y detienen aplicaciones automatizadas, impidiendo que accedan a la página.

Evita el Bloqueo Web y el Bloqueo de IP con Nstbrowser.
¡Pruébalo gratis!

Aquí hay algunas sugerencias para superar el rastreo anti-bots:

  1. Rotar User-Agent: Cambiar constantemente el encabezado User-Agent en las solicitudes puede ayudar a imitar diferentes navegadores web y evitar ser detectado como un bot.

La información UA se puede cambiar modificando la configuración al iniciar Nstbrowser:

Python Copy
config = {
    'once': True,
    'headless': False,
    'autoClose': True,
    'remoteDebuggingPort': 9226,
    'userAgent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'fingerprint': {  # requerido
        'name': 'navegador personalizado2',
        'platform': 'mac',  # soporte: windows, mac, linux
        'kernel': 'chromium',  # solo soporte: chromium
        'kernelMilestone': '120',  # soporte: 113, 115, 118, 120
        'hardwareConcurrency': 8,  # soporte: 2, 4, 8, 10, 12, 14, 16
        'deviceMemory': 2,  # soporte: 2, 4, 8
    }
}
  1. Ejecutar durante horas fuera de pico: Iniciar el rastreador durante horas fuera de pico y agregar retrasos entre las solicitudes ayuda a evitar que el servidor web se sobrecargue y active un mecanismo de bloqueo.

  2. Respetar robots.txt: Seguir la directiva robots.txt en un sitio web demuestra un comportamiento ético de rastreo. Además, ayuda a evitar el acceso a áreas restringidas y hace que las solicitudes desde scripts sean sospechosas.

  3. Evitar trampas de bot: No todos los enlaces son iguales y algunos de ellos esconden trampas de bot. Al seguirlos, serás marcado como un bot.

Sin embargo, estos consejos son muy útiles para escenarios simples, pero no suficientes para los más complejos. ¡Echa un vistazo a nuestro artículo más completo sobre Web scraping.

Superar todas las defensas no es fácil y requiere mucho esfuerzo. Además, una solución que funciona hoy puede no funcionar mañana. ¡Pero espera, hay mejores soluciones!

Nstbrowser ayuda a prevenir que los sitios web reconozcan y bloqueen la actividad de rastreo mediante Emulación de Navegador, Rotación de User-Agent y más. ¡Regístrate para una prueba gratuita hoy!

3 Rastreadores Web Python Populares

Hay varias herramientas útiles de rastreo web que pueden facilitar el proceso de descubrir enlaces y visitar páginas. Aquí tienes una lista de los mejores rastreadores web Python que pueden ayudarte:

  1. Nstbrowser: proporciona huellas dactilares de navegador reales. Combina técnicas avanzadas de desbloqueo de sitios web y eludir bots, y puede rotar IPs de manera inteligente para reducir en gran medida la probabilidad de detección.

  2. Scrapy: una de las opciones de biblioteca de rastreo Python más potentes para principiantes. Proporciona un marco avanzado para construir rastreadores escalables y eficientes.

  3. Selenium: una popular biblioteca de navegador sin cabeza para rastreo web y navegación. A diferencia de BeautifulSoup, puede interactuar con páginas web en el navegador como un usuario humano.

Notas Finales

A partir de este artículo, debes tener una comprensión completa de los conceptos básicos del rastreo web. Es importante tener en cuenta que, no importa qué tan inteligente sea tu rastreador, las medidas anti-bot pueden detectarlo y bloquearlo.

Sin embargo, puedes superar cualquier desafío utilizando Nstbrowser, un navegador anti-detección todo en uno con funciones de automatización, Huella Digital del Navegador, Resolución de Captchas, Rotación de UA y muchas otras características imprescindibles para evitar ser bloqueado.

¡El rastreo nunca ha sido más fácil! ¡Comienza a usar Nstbrowser ahora para convertirte en un maestro del rastreo web!

Más
raspado web con colly
Web Scraping
Cómo hacer web scraping en Golang usando Colly?
Golang es una de las herramientas más poderosas para el scraping web. Y Colly ayuda mucho cuando se usa Go. Lee este blog y encuentra la información más detallada sobre Colly y aprende cómo raspar sitios web con Colly.
Sep 30, 2024Carlos Rivera
Rastreador web de Java
Web Scraping
Rastreador web en Java: tutorial paso a paso 2024
El rastreador web de Java facilita las tareas de extracción de datos web y automatización. ¿Cómo hacer extracción de datos web con el rastreador web de Java? ¡Aquí tienes todo lo que te gustará!
Aug 16, 2024Robin Brown
scrapy vs beautifulsoup
Web Scraping
Scrapy vs Beautifulsoup - ¿Cuál le conviene más?
Scrapy vs BeautifulSoup, ¿cuáles son las similitudes y diferencias? ¿Cuál es mejor para usted? Descúbrelo en este blog.
Jul 31, 2024Carlos Rivera
navegador antidetección
Web Scraping
El Mejor Navegador Antidetect para Web Scraping 2024
Anti-detect browser le ayuda a ocultar la huella digital de su navegador al raspar la página web. Realmente simplifica tus tareas. ¡Lee este blog y descubre más!
Jul 19, 2024Robin Brown
Urllib, Urllib3, Requests
Web Scraping
Urllib vs Urllib3 vs Requests: ¿Cuál es mejor para usted cuando realiza Web Scraping?
Urllib, urllib3 y request son tres bibliotecas de Python maravillosas y comunes. ¿Cuáles son las diferencias de estos 3? ¡Lea este artículo y encuentre el que mejor se adapte a sus necesidades!
Jul 17, 2024Robin Brown
403 error
Web Scraping
Error 403 Forbidden: ¿Qué es? ¿Cómo solucionarlo?
¡El error 403 es súper molesto! ¿Qué es el error 403 forbidden? ¿Cómo solucionarlo? Hay de todo en este blog.
Jul 12, 2024Robin Brown
Catálogo