Si desea raspar sitios web dinámicos que utilizan JavaScript, una recomendación popular es utilizar una herramienta de automatización del navegador. Estas herramientas permiten operar un navegador utilizando código y raspar la información que aparece en ese navegador.
Existe una gran variedad de herramientas de automatización del navegador entre las cuales elegir, como Puppeteer, Selenium y Playwright. Este artículo se centrará en Playwright y Selenium, y revisará las herramientas basándose en las funciones que ofrecen y su flexibilidad y rendimiento, soporte de la comunidad, soporte del navegador, configuración y facilidad de uso.
Configuración y facilidad de uso
Playwright y Selenium son compatibles con varios lenguajes de programación, incluidos Java, Python y JavaScript, a través de bindings (implementaciones específicas de cada lenguaje que utilizan la misma API). Para empezar a utilizar Playwright o Selenium, es necesario descargar la biblioteca de vinculación correspondiente al lenguaje.
Por ejemplo, si utiliza Python, debe descargar e instalar la biblioteca pytest-playwright
o, si utiliza Selenium, la biblioteca selenium
.
Sin embargo, instalar Selenium requiere un paso adicional: es necesario descargar un WebDriver para el navegador que se utilice. Por ejemplo, si se desea raspar con Chrome, es necesario descargar ChromeDriver. En cambio, Playwright tiene un solo controlador y descarga los binarios necesarios para todos los navegadores compatibles ejecutando el comando playwright install
.
Una vez que todo está configurado, ambas librerías actúan de forma muy similar y deberían ser fáciles de navegar si se tiene experiencia previa con el raspado web. Sin embargo, si se es un principiante, Playwright ofrece una API más concisa y potentes capacidades de depuración que le ayudarán a crear su primer par de scripts sin problemas. Además, la documentación de Playwright es más moderna y más adecuada para principiantes.
En resumen, tanto Selenium como Playwright son fáciles de usar; sin embargo, la experiencia con Playwright es más fluida y menos propensa a confusiones innecesarias.
Funciones ofrecidas
Tanto Playwright como Selenium ofrecen todas las funciones básicas necesarias para la localización de elementos. Puede localizar elementos utilizando selectores CSS o XPath:
# Playwright
heading = page.locator('h1')
accept_button = page.locator('//button[text()="Accept"]')
# Selenium
heading = driver.find_element(By.CSS_SELECTOR, 'h1')
accept_button = driver.find_element(By.XPATH, '//button[text()="Accept"]')
Playwright ofrece localizadores adicionales que permiten consultar propiedades como texto, marcador de posición, título y función. Estos permiten a los desarrolladores escribir funciones de localización más claras y son útiles para los principiantes que aún no saben cómo conseguir estos localizadores mediante selectores:
accept_button = page.get_by_text("Accept")
Cuando se raspan aplicaciones web, es importante conseguir la sincronización correcta de las acciones. Hay que asegurarse de no ejecutar acciones sobre elementos que aún no han aparecido y también de que no se espera mucho tiempo a que los elementos se carguen.
Para ello, Selenium utiliza sentencias wait explícitas. Por ejemplo, pueden ordenar al script que espere a que el elemento se cargue en la página:
el = WebDriverWait(driver, timeout=3).until(lambda x: x.find_element(By.TAG_NAME,"button"))
el.click()
En comparación, las esperas de Playwright son un poco más sencillas. Antes de realizar acciones en los elementos, Playwright ejecuta automáticamente una serie de comprobaciones de accionabilidad. Esto significa que no es posible intentar hacer clic en un elemento que aún no es visible:
page.get_by_role("button").click()
Ambas herramientas tienen también varias funciones notables de calidad de vida para la depuración y generación de código. Por ejemplo, el Inspector de Playwright le permite recorrer los scripts y ver dónde van mal: ¡ya no es necesario volver a ejecutar el mismo script un millón de veces seguidas!
Y si desea crear sus scripts sin buscar selectores en HTML, Playwright tiene la opción de grabarlos con el generador de código. Este generador graba las acciones que se realizan y proporciona el código para ejecutarlas. Esto lo convierte en una de las mejores maneras para que los principiantes se familiaricen con la librería.
Aunque el código creado por el generador de código no es útil para el raspado de información debido a la especificidad de los selectores, los expertos pueden encontrarlo útil para generar acciones de configuración que suceden antes del raspado, como iniciar sesión en una cuenta o navegar a la página correcta.
Selenium también tiene una herramienta de reproducción y grabación llamada Selenium IDE, disponible como extensión del navegador para Chrome y Firefox. Selenium IDE sirve como herramienta de reproducción y grabación, permitiendo la grabación de scripts Selenium directamente dentro del entorno del navegador. Esta herramienta reúne las capacidades del inspector Playwright y del generador de código en un paquete sencillo y fácil de usar.
Flexibilidad y rendimiento
Como se ha indicado anteriormente, Playwright y Selenium son compatibles con un gran número de lenguajes. Playwright soporta oficialmente JavaScript/TypeScript, Java, Python y C#. Y Selenium admite oficialmente Java, C#, Python, JavaScript, Ruby y Kotlin.
Además de los lenguajes soportados oficialmente, los lenguajes pueden tener librerías de vinculación no oficiales que se pueden utilizar con el mismo efecto. Entre ellos, Selenium es la opción más popular, y la mayoría de los lenguajes de programación tienen al menos una biblioteca de vinculación para él. Eso significa que si elige trabajar con Selenium, con el tiempo, podrá utilizarlo para raspado en prácticamente cualquier lenguaje de programación que encuentre.
Según la mayoría de los benchmarks, Playwright es notablemente más rápido que Selenium. Dado que ambos utilizan un navegador web real (aunque normalmente sin renderización de GUI para ahorrar recursos), existe un límite en la eficiencia de las herramientas. Sin embargo, los desarrolladores de Playwright han implementado muchas optimizaciones que hacen que la ejecución de scripts sea más rápida y fácil de paralelizar.
En la actualidad, ambas herramientas admiten contextos, que son similares al modo Incógnito del navegador; permiten ejecutar varias sesiones independientes en un navegador, lo que ahorra costos de inicio del navegador al ejecutar scripts de manera aislada. Sin embargo, la implementación de contextos de Playwright aporta más ventajas de rendimiento que la de Selenium, ya que se pueden ejecutar varios contextos en paralelo, lo que acelera aún más el raspado.
Soporte de la comunidad
Tanto Selenium como Playwright tienen un excelente soporte de la comunidad y muchos expertos los utilizan en raspado web, por lo que es fácil encontrar un tutorial sobre cualquier tema.
Como Selenium es más antiguo que Playwright, ha tenido más tiempo para acumular documentación y tutoriales que cubren su amplia gama de funciones. Independientemente de la función que desee utilizar, lo más probable es que esté ampliamente documentada por el equipo de desarrolladores y la comunidad. Además, si alguna vez se necesita ayuda para utilizar Selenium, hay muchos lugares donde se puede obtener respuesta a las preguntas.
En comparación, Playwright ha tenido menos tiempo para construir una colección de materiales, pero lo compensa teniendo desarrolladores dedicados de Microsoft trabajando en Playwright que presentan y explican las nuevas funciones que el equipo desarrolla y pone sobre la mesa. Podría decirse que su documentación es más limpia y moderna, lo que facilita su uso a los principiantes.
Para obtener consejos y tutoriales sobre cómo utilizar Playwright, puede recurrir al blog oficial y al canal de YouTube. Y si desea unirse a la comunidad de Playwright, el equipo tiene un canal de Discord comunitario.
Conclusión
Cuando se compara Playwright y Selenium, Playwright es definitivamente la herramienta brillante con un montón de nuevas funciones interesantes, mientras que Selenium es la herramienta estable que funciona bien y es más que suficiente para los expertos. Si se está empezando con el raspado web, Playwright es mejor por el soporte que ofrece a los principiantes.
Ya sea que elija Playwright o Selenium para el raspado web, los proxies de Bright Data pueden integrarse fácilmente con cualquiera de las dos herramientas de automatización del navegador. Siga nuestra guía paso a paso para la integración del proxy Playwright y la integración del proxy Selenium. Únase a la mayor red de proxies y obtenga una prueba gratuita.