informatica:programacion:python:modulos:beautiful_soup
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Python: Beautiful Soup
Biblioteca de Python para analizar documentos HTML y XML (incluyendo los que tienen un marcado incorrecto). Se utiliza para el Web scraping.
Instalación
pip install beautifulsoup4
También es necesario instalar requests para poder descargar contenido web, añadir cabeceras, etc.
pip install requests
Uso
Pasos:
- URL a analizar
- Descarga de la URL con ''requests'' (indicando cabeceras si es necesario).
- Conversión de la respuesta en un objeto de Beautiful Soup
- Búsqueda de los datos que queremos (''find()'')
- Tratamiento del resultado para adaptarlo a nuestro gusto.
Ejemplos
Amazon
import bs4 import requests # es el módulo que hará la descarga # Para las webs que no permiten scraping, le hacemos creer que # nos estamos conectando con un navegador headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'} res = requests.get("https://www.amazon.es/dp/B078211KBB/", headers = headers) # Nos aseguramos de que no ha habido errores al descargar la web anterior res.raise_for_status() soup = bs4.BeautifulSoup(res.text, "html.parser") titulo = soup.find("span", attrs={"id": "productTitle"}).string.strip() try: # Precios normales precio = soup.find("span", attrs={'id':'priceblock_ourprice'}).string.strip() except AttributeError: # Precios de oferta precio = soup.find("span", attrs={'id':'priceblock_dealprice'}).string.strip() # Se crea un objeto 'BeautifulSoup' donde se podrán hacer búsquedas # utilizando selectores CSS, por ejemplo: #elementos = soup.select('html head title') print(titulo) print(precio) # Eliminamos el HTML quedándonos solo con el texto: #elementos[0].text # Quitamos también saltos de línea y espacios: #elementos[0].text.strip()
Recursos
informatica/programacion/python/modulos/beautiful_soup.1612905327.txt.gz · Última modificación: por tempwin
