Python: busque texto usando beautifulSoup y luego reemplácelo en la variable de sopa original

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *