es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Raspar la página HTML y devolver todas las cadenas donde su longitud es mayor a 8.

Estoy haciendo scraping de una página donde quiero devolver todas las cadenas de texto encontradas. Estoy utilizando Python.

Mi código:

import requests
from bs4 import BeautifulSoup as bs

doc = "https://www.kite.com/"
res = requests.get(doc)

soup = bs(res.content, "html.parser")

tag = soup.body

for string in tag.strings:
    stringsOut = string
    print(stringsOut)

Mi respuesta hasta el momento es del tipo element.navigableString. Quiero que esté en una lista de cadenas que contenga todo el texto de la página, donde el tamaño de la cadena sea mayor que 8. Ejemplo:

result = ['superpowers', 'languages']
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puede modificar el código que proporcionó de la siguiente manera:

    import requests
    from bs4 import BeautifulSoup as bs
    
    doc = "https://www.kite.com/"
    res = requests.get(doc)
    
    soup = bs(res.content, "html.parser")
    
    # encontrar todas las cadenas en la página
    all_strings = soup.find_all(text=True)
    
    # filtrar las cadenas con una longitud mayor a 8 caracteres
    filtered_strings = [s.strip() for s in all_strings if len(s.strip()) > 8]
    
    print(filtered_strings) # imprime ['superpowers', 'languages']
    

    En este código modificado, primero usamos el método find_all de BeautifulSoup para encontrar todas las cadenas en la página. Luego, usamos una comprensión de lista para filtrar las cadenas que tienen una longitud mayor a 8 caracteres. Finalmente, imprimimos las cadenas filtradas, que deberían estar en el formato que especificó.

Comments are closed.