Encuentre la longitud del texto de la primera etiqueta dada usando BeautifulSoup

En este artículo, vamos a encontrar la longitud del texto de la primera etiqueta dada usando BeautifulSoup.

Veamos un ejemplo de muestra. Usando ‘html.parser’ se analiza y la longitud del valor de la etiqueta ‘h2’ se calcula en el código siguiente sopa = BeautifulSoup(html_doc, ‘html.parser’) especifica que todo el documento HTML dado se analiza usando html.parser. El método soup.find(‘h2’).text toma cualquiera de las etiquetas HTML válidas que están presentes dentro del documento dado y las busca. Si las etiquetas están presentes, obtendrá el siguiente conjunto de operaciones para realizar. En caso de que la etiqueta especificada no esté presente, arrojará un «Error de atributo»

Aquí, en el ejemplo, nos preocupamos por calcular la longitud, por lo tanto, usamos la función len() . La función len() devuelve la cantidad de elementos en un objeto y, en el caso de una string, devuelve la cantidad de caracteres encerrados en esa string.

Ejemplo 1:

En este ejemplo, como hemos tratado de obtener un valor de texto presente dentro de «h2», solo está calculando la cantidad de caracteres encerrados en esa string.

Python3

# import module
from bs4 import BeautifulSoup
 
# assign HTML document
html_doc = """
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>An example of HTML page to find the length of
the first tag</title>
</head>
 
<body>
<h2>An example of HTML page to find the length of the
first tag</h2>
 
 
 
<p>
Beautiful Soup is a library which is essential to scrape
information from web pages.
It helps to iterate, search and modifying the parse tree.</p>
 
 
</body>
</html>
"""
 
# create beautiful soap object
soup = BeautifulSoup(html_doc, 'html.parser')
 
# get length
print("Length of the text of the first <h2> tag:")
print(len(soup.find('h2').text))

Producción:

Length of the text of the first <h2> tag:
59

La instrucción Soup.find().text recupera el texto encerrado entre una etiqueta en particular. Luego, la función len() devuelve la longitud del texto.

Ejemplo 2:

Obtenga la longitud de todas las etiquetas HTML presentes dentro del HTML dado.

Python3

# import module
from bs4 import BeautifulSoup
 
# assign html document
html_doc = """
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>An example of HTML page to find the length of
the first tag</title>
</head>
 
<body>
<h2>An example of HTML page to find the length of the
first tag</h2>
 
 
<p>
Beautiful Soup is a library which is essential to scrape
information from web pages.
It helps to iterate, search and modifying the parse tree.</p>
 
 
</body>
</html>
"""
 
# create beautiful sopa object
soup = BeautifulSoup(html_doc, 'html.parser')
 
# Get all the tags present in the html and
# getting their length
for tag in soup.findAll(True):
    print(tag.name, " : ", len(soup.find(tag.name).text))

Producción:

El método findAll(True) hasta que haya etiquetas, las encontrará. La etiqueta for en sopa.findAll(True): la declaración itera todas las etiquetas que se encuentran y, finalmente, la declaración imprime(etiqueta.nombre, ”:“, len(sopa.buscar(etiqueta.nombre).texto)) muestra la etiqueta una por una, así como su longitud.

Si queremos obtener explícitamente la primera etiqueta significa, en el código anterior, debemos colocar una declaración de ruptura después de la declaración de impresión.

Python3

# get length of first tag only
for tag in soup.findAll(True):
    print(tag.name, " : ", len(soup.find(tag.name).text))
    break

Producción: 

html  :  270

Ejemplo 3:

En este ejemplo, encontraremos la longitud del texto de una determinada etiqueta de un documento HTML. 

Python3

# import module
from bs4 import BeautifulSoup
 
# assign HTML document
html_doc = """
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>An example of HTML page to find the length of
the first tag</title>
</head>
 
<body>
<h2>An example of HTML page to find the length of the
first tag</h2>
 
 
<p>
Beautiful Soup is a library which is essential to scrape
information from web pages.
It helps to iterate, search and modifying the parse tree.</p>
 
 
</body>
</html>
"""
 
# create beautiful soap object
soup = BeautifulSoup(html_doc, 'html.parser')
 
# assign tag
tag = "html"
 
# get length
print("Length of the text of", tag, "tag is:",
      len(soupResults.find(tag).text))

Producción:

Length of the text of html tag is: 5062

Ejemplo 4:

Ahora veamos cómo obtener una etiqueta y sus longitudes de texto de una página web como monster . Como necesitamos obtener datos de esta URL de solicitud, debemos incluir el módulo de requests para lograr lo mismo.

Python3

# import module
from bs4 import BeautifulSoup
import requests
 
# assign URL
monsterPageURL = 'https://www.geeksforgeeks.org/how-to-scrape-all-pdf-files-in-a-website/'
monsterPage = requests.get(monsterPageURL)
 
# create Beautiful Soup object
soupResults = BeautifulSoup(monsterPage.content, 'html.parser')
 
# assign tag
tag="title"
 
# get length of the tags
print("Length of the text of",tag,"tag is:",
        len(soupResults.find(tag).text))

Producción:

Length of the text of title tag is: 57

Publicación traducida automáticamente

Artículo escrito por priyarajtt 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 *