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