Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
AttributeError: 'int' object has no attribute 'upper'
#1
Tengo hecho un código para hacer scraping que funciona bien si el imputed_data es alfanumérico. Cuando únicamente es numérico me lanza este error << AttributeError: 'int' object has no attribute 'upper' >>

Entiendo que al ser numérico no encuentra como hacer mayúsculas pero no se como cambiar esa parte. El código completo es es siguiente:


# Import necessary modules
from bs4 import BeautifulSoup
import requests
import pandas


inputed_data = pandas.read_excel("Datos prueba.xlsx")

scraped_data = []
total = len(inputed_data['Internal Key'])
print(f"Found {total} companies to scrape. Starting to scrap.")
n = 1
for each in inputed_data['Internal Key']:
res = requests.get(f"https://www.stoxx.com/component-details?key={each.upper()}")
soup = BeautifulSoup(res.content, 'lxml')
subsector = soup.select(".last td")[1].getText().strip()
scraped_data.append(subsector)
print(f"Got {n} companies data out of {total} companies")
n += 1

inputed_data['Subsector'] = scraped_data
inputed_data.to_excel("Datos raspados.xlsx", index=False)
print("Finished scraping! Saved the data in \"Datos raspados.xlsx\" file")


¿Puede alguien ayudarme? Gracias.
Responder
#2
Hola, bienvenido.

Podés convertir el dato a una cadena antes de llamar a upper():

Código:
res = requests.get(f"https://www.stoxx.com/component-details?key={str(each).upper()}")

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)