Saltar al contenido

Web Scraping con BeautifulSoup – PythonForBeginners.com

Raspado web

“Web scraping (recolección web o extracción de datos web) es una técnica de software de computadora para extraer información de sitios web”.

El análisis de HTML es fácil en Python, especialmente con la ayuda de la biblioteca BeautifulSoup. En esta publicación, rasparemos un sitio web (el nuestro) para extraer todas las URL.

Empezando

Para empezar, asegúrese de tener instalados los módulos necesarios. En el siguiente ejemplo, estamos usando Hermosa sopa 4 y Peticiones en un sistema con Python 2.7 instalado. La instalación de BeautifulSoup y Requests se puede realizar con pepita:


$ pip install requests

$ pip install beautifulsoup4

¿Qué es Beautiful Soup?

En la parte superior de su sitio web, puedes leer: “No escribiste esa horrible página. Solo estás tratando de obtener algunos datos. Beautiful Soup está aquí para ayudar. Desde 2004, ha estado ahorrando a los programadores horas o días de trabajo en proyectos de eliminación de pantalla de respuesta rápida “.

Hermosas características de la sopa:

Beautiful Soup proporciona algunos métodos simples y modismos Pythonic para navegar, buscar y modificar un árbol de análisis: un conjunto de herramientas para diseccionar un documento y extraer lo que necesita. No se necesita mucho código para escribir una aplicación.

Beautiful Soup convierte automáticamente los documentos entrantes a Unicode y los documentos salientes a UTF-8. No tiene que pensar en codificaciones, a menos que el documento no especifique una codificación y Beautiful Soup no pueda detectar una automáticamente. Entonces solo tienes que especificar la codificación original.

Beautiful Soup se encuentra en la parte superior de los analizadores de Python populares como lxml y html5lib, lo que le permite probar diferentes estrategias de análisis o cambiar la velocidad por flexibilidad.

Extrayendo URL de cualquier sitio web

Ahora que sepamos qué es BS4 y lo hayamos instalado en nuestra máquina, veamos qué podemos hacer con él.


from bs4 import BeautifulSoup

import requests

url = raw_input("Enter a website to extract the URL's from: ")

r  = requests.get("http://" +url)

data = r.text

soup = BeautifulSoup(data)

for link in soup.find_all('a'):
    print(link.get('href'))

Cuando ejecutamos este programa, nos pedirá un sitio web para extraer las URL de


Enter a website to extract the URL's from: www.pythonforbeginners.com
Learn Python By Example
https://www.pythonforbeginners.com/python-overview-start-here/ https://www.pythonforbeginners.com/dictionary/ https://www.pythonforbeginners.com/python-functions-cheat-sheet/
Lists
https://www.pythonforbeginners.com/loops/ https://www.pythonforbeginners.com/python-modules/ https://www.pythonforbeginners.com/strings/ https://www.pythonforbeginners.com/sitemap/ https://www.pythonforbeginners.com/feed/
Learn Python By Example
.... .... ....

Le recomiendo que lea nuestro artículo de introducción: Beautiful Soup 4 Python para obtener más conocimientos y comprensión sobre Beautiful Soup.

Más lectura

http://www.crummy.com/software/BeautifulSoup/

http://docs.python-requests.org/en/latest/index.html

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.