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 capturar datos de un sitio web como pares clave-valor utilizando Python?

Resultado generado: 1
código utilizado para obtener el nombre del modelo: 2

ingresar código aquí
test_link = 'https://www.amd.com/en/products/cpu/amd-ryzen-9-3900xt'
r = requests.get(test_link, headers=headers)
soup = BeautifulSoup(r.content,'lxml')
whole_data = soup.find('div', class_='fieldset-wrapper')
specifications = []
specifications_value=[]
for variable1 in whole_data.find_all('div', class_='field__label'):
    #print(variable1.text)
    variable1 = variable1.text
    specifications = list(variable1.split('\n'))
    #print(specifications)
for variable2 in whole_data.find_all('div', class_='field__item'):
    #print(variable2.text)
    variable2 = variable2.text
    specifications_value = list(variable2.split('\n'))
    #print(specifications_value)

problema: estoy obteniendo los datos, pero en variables separadas y bucles “for”, ¿cómo puedo mapear estas dos variables usando pares clave-valor? para poder verificar condiciones como:
si el valor es plataforma, entonces solo tomar su valor (procesador en caja)

quiero capturar los datos de tal manera que si la ‘clave’ es plataforma, solo capture su valor (procesador en caja). De manera similar para otros 14 etiquetas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir las variables separadas “specifications” y “specifications_value” en pares clave-valor, puedes usar un diccionario. Aquí tienes un ejemplo de cómo hacerlo:

    spec_dict = {}
    for i in range(len(specifications)):
        spec_dict[specifications[i].strip()] = specifications_value[i].strip()
    
    # Uso de ejemplo:
    if spec_dict['Platform'] == 'Box Processor':
        print('Este es un procesador empaquetado (boxed processor)')
    

    En este código, creamos un diccionario vacío llamado “spec_dict”. Luego, iteramos a través de las listas “specifications” y “specifications_value” utilizando un bucle “for” y range(len(lista)) para obtener los elementos correspondientes de cada lista. Usamos el método strip() para eliminar cualquier espacio en blanco al inicio o al final de las cadenas. Finalmente, agregamos un par clave-valor al diccionario para cada especificación, donde la clave es el nombre de la especificación y el valor es el valor correspondiente.

    Esto te dará un diccionario que puedes usar para verificar si una especificación específica tiene un cierto valor, como en el ejemplo anterior donde verificamos si la clave “Platform” tiene el valor “Box Processor” (procesador empaquetado). Puedes utilizar declaraciones “if” similares para las otras 14 etiquetas.

Comments are closed.