Guía para simplificar el Web Scraping en Python con AutoScraper

Guías, Raspado, Python, Mayo-23-20245 minutos de lectura

AutoScraper es una potente biblioteca de raspado web de código abierto para Python que simplifica el proceso de extracción de datos de sitios web. A diferencia de los marcos de raspado web tradicionales que requieren una extensa codificación para analizar el contenido HTML, AutoScraper puede generar automáticamente reglas para extraer la información deseada basándose en ejemplos que usted proporcione. AutoScraper es especialmente adecuado para principiantes en el mundo del web scraping. Su interfaz fácil de usar y la generación automática de reglas lo hacen accesible para quienes no tengan mucha experiencia en codificación.   

Características principales de AutoScraper

  • Facilidad de uso: Con unas pocas líneas de código, puede configurar un raspador web que requiere un mantenimiento mínimo.
  • Extracción eficaz de datos: El modelo de AutoScraper aprende la estructura de las páginas web para adaptarse a pequeños cambios, lo que reduce la necesidad de realizar ajustes frecuentes.
  • Versatilidad: Es compatible con una amplia gama de sitios web y puede integrarse en canalizaciones de datos más grandes.

Inicio rápido de AutoScraper

Supongamos que desea raspar una tienda de comercio electrónico sin tener que tratar con el análisis sintáctico de HTML. AutoScraper te permite introducir los nombres de los productos en la 'wanted_list', y automáticamente aprenderá la estructura HTML y analizará los productos subsiguientes por sí solo.

He aquí un ejemplo claro para demostrar el proceso, incluida la implementación de proxies:

Paso 1: Instalar AutoScraper

En primer lugar, tendrá que instalar AutoScraper. Puedes hacerlo usando pip:

from autoscraper import AutoScraper

Paso 3: Definir la URL y la lista de buscados

Especifique la URL que desea raspar y los elementos o productos que desea extraer. Al hacerlo, AutoScraper puede aprender la estructura HTML y analizar con precisión todos los elementos similares dentro de ese marco:

url = 'https://books.toscrape.com/'
lista_buscada = [
    " Tipping the Velvet",
    " Soumission",
]

Paso 4: Construir el rascador

Utilice el AutoScraper para construir su modelo de raspado:

    scraper = AutoScraper()
    
    proxies = {
        "http": 'http://test_user112:[email protected]:6060',
        "https": 'http://test_user112:[email protected]:6060',
    }
    #  if you wish to use the same scraper again
    scraper.save('books_to_scrape')
    result = scraper.build(url, wanted_list, request_args=dict(proxies=proxies))
    print(result)

Paso 5: (Opcional) Reutilizar el rascador anterior

    scraper = AutoScraper()

   scraper.load('books_to_scrape')

    resultado = scraper.get_result(url)

Salida generada por el código:

['Una luz en el ...', 
'Tipping the Velvet', 
'Soumission', 
Sharp Objects', 
Sapiens: una breve historia.., 
'El Réquiem Rojo', ' Los Pequeños Secretos Sucios ...', 
'La mujer que viene: A ...', 
Los chicos del.., 
'La María Negra', 
Corazones hambrientos( Comerciotriangular...), 
"Sonetos de Shakespeare", 
' Libérame', 
"Scott Pilgrim's Precious Little ...", 
'Rip it Up and ...', 
'Nuestra banda podría ser ...', 
'Olio', 
'Mesaerion: La mejor ciencia ...', 
'Libertarianismo para principiantes', 
"Es sólo el Himalaya", 
'Una luz en el desván', 
'Sapiens: Breve historia de la humanidad', 
"Los pequeños secretos sucios para conseguir el trabajo de tus sueños", 
La mujer que viene: Una novela basada en la vida de la infame feminista Victoria Woodhull", 
Los chicos del barco: Nueve estadounidenses y su épica búsqueda del oro en los Juegos Olímpicos de Berlín de 1936 ", 
"Corazones hambrientos( Trilogía del comerciotriangular,nº 1)", 
"La preciada pequeña vida de Scott Pilgrim (Scott Pilgrim, nº 1)", 
'Rómpelo y empieza de nuevo', 
'Our Band Could Be Your Life: Scenes from the American Indie Underground,  1981-1991', 
'Mesaerion: Los mejores relatos de ciencia ficción  1800-1849"].

Limitaciones

  Una de las principales limitaciones de AutoScraper es que no admite el renderizado de JavaScript ni la carga dinámica de datos. Pero no te preocupes, ¡hay una solución! Mediante el uso de bibliotecas de Python como Selenium o Playwright, que sí manejan datos dinámicos, podemos obtener los datos HTML y dejar que Autoscraper se encargue de analizarlos por nosotros.
Si su sitio web de destino emplea protección anti-bot, en ProxyScrape, ofrecemos una API de raspado web fiable que se encarga de todo por usted, haciendo que su proceso de recopilación de datos sea sencillo y eficiente.
Aquí tiene un ejemplo de cómo puede utilizar nuestra API de raspado web con AutoScraper:  

import requests
from autoscraper import AutoScraper


def send_request(url_to_scrape):
    api_key = 'your_api_key' 
    data = {
        "url": url_to_scrape,
        "browserHtml": True  # Use browserHtml for JavaScript rendering
    }
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    response = requests.post("https://api.proxyscrape.com/v3/accounts/freebies/scraperapi/request",
                             headers=headers, json=data)

    #  we return the html data that web scraping api extracted
    return response.json()['data']['browserHtml']

if __name__ == '__main__':
    target_url = 'https://books.toscrape.com/'

    # get html data using web scraping api
    html_content = send_request(target_url)

    # parse that html data using AutoScraper
    scraper = AutoScraper()

    wanted_list = [
        "Tipping the Velvet",
        "Soumission",
    ]

    result = scraper.build(wanted_list=wanted_list, html=html_content)

    print(result)

Buenas prácticas para Web Scraping con AutoScraper y Proxies

  • Respete las condiciones de servicio de los sitios web: Revisa y respeta siempre las condiciones de servicio de un sitio web antes de hacer scraping.
  • Utiliza proxies rotatorios: Para evitar la detección y los límites de velocidad, utilice proxies rotatorios que cambien de dirección IP con frecuencia. ProxyScrape ofrece proxies rotatorios residenciales y móviles que son perfectos para este propósito.
  • Acelere sus solicitudes: Aplica retardos entre solicitudes para imitar el comportamiento humano y reducir el riesgo de que te baneen.
  • Supervise sus actividades: Compruebe regularmente la salud de sus proxies y el rendimiento de su scraper para identificar y solucionar cualquier problema rápidamente.
  • Manténgase actualizado: Mantenga actualizados sus scripts de scraping y sus listas de proxy para adaptarse a los cambios en las estructuras de los sitios web y las rotaciones de IP de los proxy.

Conclusión

El Web scraping es una herramienta poderosa para la adquisición de datos, y con la combinación correcta de AutoScraper y proxies, puede liberar todo su potencial. Mediante la integración de ProxyScrape's premium proxies, se asegura de que sus actividades de raspado son eficientes, anónima, y uninterrupted.We le proporciona los elementos necesarios para empezar, si desea obtener más avanzado con AutoScraper comprobar este gist.

¿Listo para elevar su juego de raspado web? Empiece hoy mismo a explorar las posibilidades de AutoScraper con los proxies premium de ProxyScrape. Visite ProxyScrape para registrarse y aprovechar nuestras soluciones de proxy de última generación.

Si necesitas ayuda con el web scraping, no dudes en unirte a nuestro canal de Discord , donde podrás encontrar apoyo.

¡Feliz raspado!