TUTORIAL Scraping con Python: Cómo obtener información de una web

jose

Administrator
Miembro del equipo
¿Alguna vez has querido obtener información de una página web y no has sabido cómo hacerlo?

En este post, te enseñaremos cómo hacer scraping de datos en Python utilizando las bibliotecas requests, beautifulsoup4 y lxml. Aprenderás a extraer información utilizando selectores CSS y XPath, lo que te permitirá obtener información de cualquier sitio web sin límites. Además, te proporcionaremos un código final de ejemplo que es real y funcional para que puedas utilizarlo como punto de partida para tus propios proyectos de scraping

Paso 1: Instalar bibliotecas​


Primero, necesitaremos instalar las bibliotecas que vamos a utilizar. Puedes instalarlas a través del comando pip en tu terminal:

Código:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Paso 2: Obtener la página web​


En este tutorial, utilizaremos la página web de Wikipedia como ejemplo. Para obtener la página web, utilizaremos la biblioteca requests:

Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este código, hemos definido la variable url que contiene la dirección web que deseamos escrapear. Luego, utilizamos la función get() de la biblioteca requests para obtener la página web y almacenarla en la variable response.

Paso 3: Analizar la página web​


Para extraer información de la página web, necesitamos analizar su contenido. Para ello, utilizaremos la biblioteca beautifulsoup4:

Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este código, hemos importado la clase BeautifulSoup de la biblioteca beautifulsoup4. Luego, hemos utilizado esta clase para crear un objeto soup que contiene el contenido de la página web que hemos obtenido en el paso anterior.

Paso 4: Extraer información utilizando selectores CSS​


Una vez que hemos analizado la página web, podemos utilizar selectores CSS para extraer información de ella. Por ejemplo, si deseamos obtener el título de la página web, podemos utilizar el siguiente código:

Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este código, hemos utilizado el selector CSS title para seleccionar el elemento title de la página web. Luego, hemos utilizado el método text para obtener el texto del elemento y almacenarlo en la variable title. Finalmente, hemos impreso el título en la consola.

Paso 5: Extraer información utilizando selectores XPath​


También podemos utilizar selectores XPath para extraer información de la página web. Por ejemplo, si deseamos obtener el primer enlace de la página, podemos utilizar el siguiente código:

Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este código, hemos utilizado el selector XPath //a para seleccionar todos los elementos a de la página web. Luego, hemos utilizado el índice [0] para seleccionar el primer elemento a de la lista resultante. Finalmente, hemos utilizado el método get() para obtener el valor del atributo href del elemento y almacenarlo en la variable first_link.

Extra: Aporte de un código final y funcional​

Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este código, primero importamos las bibliotecas requests y BeautifulSoup. Luego, obtenemos la página web y la analizamos utilizando BeautifulSoup con el analizador lxml.

Después, utilizamos selectores CSS y XPath para extraer información de la página web. En este ejemplo, extraemos el título de la página utilizando un selector CSS y el primer enlace de la página utilizando un selector XPath.

Finalmente, imprimimos la información extraída en la consola. Pero... ¿y que pasa si queremos guardar esa información en un fichero?

Extra: Almacenar la información de una extracción en un fichero CSV​


Después de extraer la información de una página web utilizando scraping, es posible que desees almacenarla para su posterior análisis. Una forma común de hacerlo es almacenar los datos en un fichero CSV (valores separados por comas). En este encabezado, te mostraremos cómo hacerlo.

Para almacenar la información extraída en un fichero CSV, utilizaremos la biblioteca csv de Python. Esta biblioteca nos permite escribir datos en un formato CSV de manera fácil y eficiente.

Aquí tienes un ejemplo de cómo almacenar la información extraída en un fichero CSV:
Python:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

En este ejemplo, hemos creado un fichero CSV llamado informacion.csv y hemos escrito los datos extraídos en él. Hemos utilizado la función writerow() de la clase csv.writer para escribir cada fila en el fichero CSV. También hemos especificado que los valores están separados por comas mediante el parámetro delimiter=','.

Puedes modificar este ejemplo para almacenar cualquier información extraída en un fichero CSV.

Esperamos que este tutorial te haya sido útil y que te haya ayudado a aprender cómo hacer scraping de datos en Python utilizando las bibliotecas requests, beautifulsoup4 y lxml.

Si tienes alguna duda puedes dejarla en los comentarios!
¡Gracias por leer y esperamos verte pronto en el próximo post! ;)
 
Volver
Arriba