DEV Community

SERGIO ROJAS
SERGIO ROJAS

Posted on • Edited on

Web Scraping Herramientas y Técnicas para No bloquearte en el paso

El mundo del desarrollo web es un viaje en constante evolución, y en mi propia travesía decidí dar un giro inesperado. Siendo un desarrollador Front-end apasionado por el diseño web, me aventuré a dar un salto hacia el desarrollo Back-end.

Esta transición no solo amplió mis horizontes, sino que también me permitió explorar una herramienta fascinante: el web scraping.

Texto alternativo

En este artículo, compartiré mi experiencia y algunas de las lecciones aprendidas que me ayudaron a superar el desafío de cambiar mi enfoque de desarrollo y sumergirme en este mundo del web scraping. Posiblemente desarrolle un proyecto más complejo en el futuro donde se demuestre de manera práctica el desarrollo y los usos de Selenium en web scraping.

Inicialmente, partí investigando casos expuestos en la red sobre web scraping, incluyendo las mejores herramientas y los escenarios en los que se pueden aplicar. Esto me ayudó a seleccionar Python como lenguaje de programación inicial para comenzar con el desarrollo, permitiéndome obtener, manipular y usar los datos generados mediante web scraping.

Te recomiendo investigar cómo realizar web scraping en la página que tengas en mente. Es posible que puedas obtener la información usando Beautiful Soup o Selenium. Para páginas donde la información está cargada de forma dinámica, se recomienda el uso de Selenium.

La diferencia principal radica en cómo deseas obtener los datos de la página. Beautiful Soup realiza una especie de captura de pantalla del DOM en el momento, mientras que Selenium permite interacciones más dinámicas.

Para comenzar, descarga Selenium, una herramienta de pruebas de software para aplicaciones web que permite extraer información de las páginas y realizar acciones dinámicas de forma automática:

pip install Selenium
Enter fullscreen mode Exit fullscreen mode

Es importante saber que necesitarás un driver para que Selenium interactúe con tu navegador. Aquí algunos de los drivers más populares:

En este caso, usaré Chrome como ejemplo, ya que al ser uno de los navegadores más utilizados, hay abundante información sobre su uso con Selenium. Luego, configura Selenium para acceder a una URL establecida y realizar web scraping:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By

#Options

browser = webdriver.Chrome()

browser.get('http://www.pagina_prueba_aqui.com')
elem = browser.find_element(By.NAME, 'p')  # Find the search box
browser.quit()
Enter fullscreen mode Exit fullscreen mode

Para esta configuración, es esencial incluir herramientas como WebDriverWait, que permite controlar el tiempo de carga de la página, y By, que facilita la búsqueda de elementos HTML.

Encontrarás numerosos artículos, blogs y videos con valiosa información para desarrollar proyectos que utilicen web scraping.

El propósito de este artículo es ofrecerte orientación sobre posibles errores que podrías enfrentar durante tu desarrollo. Muchos de estos obstáculos me llevaron tiempo entender y resolver, por lo que compartiré mis soluciones para ayudarte a avanzar con éxito en tu proyecto.

Uno de los errores más comunes es ignorar los tiempos de carga de información en una página web. Aunque estimes un intervalo de 5 segundos, no siempre es suficiente para que la información esté disponible. Es importante verificar la existencia de los elementos antes de extraerlos.

delay = 3 # seconds
try:
    myTag = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'id_element')))
    print "Page is ready!"
except TimeoutException:
    print "Loading took too much time!"
Enter fullscreen mode Exit fullscreen mode

Otro error frecuente es ignorar cambios dinámicos en el DOM. Estos pueden ocurrir después de una interacción, como un clic o un desplazamiento, haciendo que el scraper falle al intentar acceder a elementos que ya no existen o han cambiado de lugar.

Por último, recuerda respetar los términos de servicio del sitio web objetivo para evitar problemas legales o el bloqueo de tu scraper.

Próximamente exploraremos más errores y mejores prácticas para maximizar la eficiencia de tu scraper con Selenium.

¡Mantente atento! 🚀

Top comments (0)