Почему нельзя преобразовать строку в число если первый элемент - минус? И как это исправить?
Есть программа, для неё мне нужен парсер погоды. Вот код:
page = requests.get("https://yandex.ru/pogoda/ulyanovsk")
tree = html.fromstring(page.content)
temperature_for_today = tree.xpath('/html/body/div/div[6]/div[1]/div/div[2]/div[1]/div[5]/a/div[1]/span[2]')[0].text
pog_for_today = tree.xpath('/html/body/div[1]/div[6]/div[1]/div/div[2]/div[1]/div[5]/a/div[2]/div[1]')[0].text
print(type(temperature_for_today))
temp_today = temperature_for_today
temp_today = int(temp_today)
print(type(temp_today)
Вот ошибка:
invalid literal for int() with base 10: '−2'
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
Можно. Просто это не минус, а тире.
Сравните:
print(int("-2")) # минус
print(int("−2")) # то, что у вас
Разница даже так видна − тире длиннее.
Исправить, например, заменив тире на минус:
temp_today = temp_today.replace("−", "-")