Почему нельзя преобразовать строку в число если первый элемент - минус? И как это исправить?

Есть программа, для неё мне нужен парсер погоды. Вот код:

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("−", "-")
→ Ссылка