Python proporciona una biblioteca llamada BeautifulSoap para permitir fácilmente el web scraping. El objeto BeautifulSoup lo proporciona Beautiful Soup, que es un marco de web scraping para Python. El raspado web es el proceso de extracción de datos del sitio web utilizando herramientas automatizadas para acelerar el proceso. El objeto BeautifulSoup representa el documento analizado como un todo. En este artículo, eliminaremos un sitio web simple y reemplazaremos el contenido en la variable «sopa» analizada.
Para el propósito de este artículo, vamos a crear un entorno virtual (venv) ya que nos ayuda a administrar instalaciones de paquetes separados para diferentes proyectos y evitar problemas con dependencias e intérpretes.
Puede leer más sobre cómo crear un entorno virtual desde aquí: Crear un entorno virtual
Crear un entorno virtual
Navegue hasta el directorio de su proyecto y ejecute este comando para crear un entorno virtual llamado «env» en el directorio de su proyecto.
python3 -m venv env
Active el «env» escribiendo.
source env/bin/activate
Con el intérprete activado, podemos ver el nombre de un intérprete en nuestra línea de comandos antes del símbolo :~$
Instalación de los módulos necesarios
- BeautifulSoup: una biblioteca para raspar las páginas web.
pip install bs4
- requests: Esto hace que el proceso de envío de requests HTTP.
pip install requests
Enfoque paso a paso
- Comencemos importando bibliotecas y almacenando la respuesta de requests «GET» en una variable.
Python3
import bs4 from bs4 import BeautifulSoup import requests # sending a GET req. response = requests.get("https://isitchristmas.today/") print(response.status_code)
Producción:
200
Un estado de 200 implica una solicitud exitosa.
- Ahora analicemos el contenido como un objeto BeautifulSoup para extraer las etiquetas de título y encabezado del sitio web (como en este artículo) y reemplazarlo en la variable de sopa original. El método find() devuelve el primer caso coincidente del objeto sopa.
Python3
# create object soup = BeautifulSoup(r.text, "html.parser") # find title title = soup.find("title") # find heading heading = soup.find("h1") print(title)
Producción:
Reemplazando el contenido del objeto de sopa analizada con el método «.string» .
Python3
# replace title.string = "Is GFG day today?" heading.string = "Welcome to GFG"
Producción:
Por lo tanto, la etiqueta de título y las etiquetas de encabezado se han reemplazado en la variable de sopa original.
Nota: No podemos devolver la página modificada al sitio web, ya que esas páginas se procesan desde los servidores donde están alojadas.
A continuación el programa completo:
Python3
import bs4 from bs4 import BeautifulSoup import requests # sending a GET requests response = requests.get("https://isitchristmas.today/") # a status 200 implies a successful requests #print(response.status_code) soup = BeautifulSoup(response.text, "html.parser") #print(soup) title = soup.find("title") heading = soup.find("h1") # replacde title.string = "Is GFG day today?" heading.string = "Welcome to GFG" # display replaced content print(soup) # The title and the heading tag contents # get changed in the parsed soup obj.
Producción:
Publicación traducida automáticamente
Artículo escrito por mohdzaid07ali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA