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.

¿Cómo puedo agregar los resultados de BeautifulSoup a un diccionario en Python?

Quiero poner todos los resultados de una solicitud de BeautifulSoup en un diccionario en Python con la clave para todos ellos como “https”. Mi código actual se ve así:

soup = BeautifulSoup(request.content, "lxml").find_all("td", class_="new");
for soup in soup:
info = {};
info["https"] = soup.text;

Pero si lo ejecuto y hago print(len(info)), solo devuelve uno cuando soup.text devuelve mucho más.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que el diccionario info está siendo reinicializado dentro del bucle for. Por lo tanto, sólo se está guardando el último elemento en el diccionario. Para resolver este problema, mueve la inicialización del diccionario info fuera del bucle.

    El código actualizado debe verse así:

    soup = BeautifulSoup(request.content, "lxml").find_all("td", class_="new")
    info = {"https": []}  # inicializa el diccionario fuera del bucle
    for s in soup:
        info["https"].append(s.text)  # agrega los resultados a la clave "https"
    
    print(len(info["https"]))  # debería imprimir la longitud de todos los resultados
    

    Con este código actualizado, todos los resultados se guardarán en una lista bajo la clave “https” del diccionario. Se puede obtener la longitud de esta lista llamando a len(info["https"]).

Comments are closed.