Primeros pasos con beautifulsoup

Instalación o configuración

pip puede usarse para instalar BeautifulSoup. Para instalar la versión 4 de BeautifulSoup, ejecute el comando:

pip install beautifulsoup4

Tenga en cuenta que el nombre del paquete es beautifulsoup4 en lugar de beautifulsoup, este último nombre significa versión anterior, consulte old beautifulsoup

Un ejemplo de scraping de BeautifulSoup “Hello World”

from bs4 import BeautifulSoup
import requests

main_url = "https://fr.wikipedia.org/wiki/Hello_world"
req = requests.get(main_url)
soup = BeautifulSoup(req.text, "html.parser")

# Finding the main title tag.
title = soup.find("h1", class_ = "firstHeading")
print title.get_text()

# Finding the mid-titles tags and storing them in a list.
mid_titles = [tag.get_text() for tag in soup.find_all("span", class_ = "mw-headline")]

# Now using css selectors to retrieve the article shortcut links
links_tags = soup.select("li.toclevel-1")
for tag in links_tags:
    print tag.a.get("href")

# Retrieving the side page links by "blocks" and storing them in a dictionary
side_page_blocks = soup.find("div",
                            id = "mw-panel").find_all("div",
                                                      class_ = "portal")
blocks_links = {}
for num, block in enumerate(side_page_blocks):
    blocks_links[num] = [link.get("href") for link in block.find_all("a", href = True)]

print blocks_links[0]

Producción:

"Hello, World!" program
#Purpose
#History
#Variations
#See_also
#References
#External_links
[u'/wiki/Main_Page', u'/wiki/Portal:Contents', u'/wiki/Portal:Featured_content', u'/wiki/Portal:Current_events', u'/wiki/Special:Random', u'https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en', u'//shop.wikimedia.org']

Ingresar su analizador preferido al instanciar Beautiful Soup evita la “Advertencia” habitual que declara que “no se especificó explícitamente ningún analizador”.

Se pueden usar diferentes métodos para encontrar un elemento dentro del árbol de la página web.

Aunque existen algunos otros métodos, las “clases CSS” y los “selectores CSS” son dos formas útiles de encontrar elementos en el árbol.

Cabe señalar que podemos buscar etiquetas configurando su valor de atributo en True al buscarlas.

get_text() nos permite recuperar el texto contenido dentro de una etiqueta. Lo devuelve como una sola cadena Unicode. tag.get("attribute") permite obtener el valor del atributo de una etiqueta.