Итак, я кодирую маленького бота в python, и у меня возникла проблема. Кажется, это распространенная проблема, но я никогда не видел, чтобы ее спрашивали в той же ситуации, в которой я нахожусь.
Хорошо, так вот проблема постановки кода:
old_values = float((removeprc(browser.find_element_by_xpath('//*[@id="draggableNavRightResizable"]/section/section[2]/section[1]/div[3]/ul/li[1]/div[2]/div[6]/span').text)))
browser .find_element_by_xpath ( '// * [@ ID = "draggableNavRightResizable"] / раздел / раздел [2] / раздела [1] / дел [3] / мкл / Li [1] / дел [2] / дел [6] / span '). text) - это селеновый инструмент, используемый для получения стоимости сайта. как вы увидите позже, найденный элемент - это число, которое должно работать с float (). "remove pr c" - небольшая функция, которую я создал для удаления% числа, вот она:
def removeprc(string): #removes the % from a string
string = str(string)
list = string.split('%')
string = " ".join(list)
return string
Вероятно, это не лучший способ сделать это, но он работает, когда я тестирую его в одиночку.
В любом случае, вот что я получаю, когда запускаю весь свой код
loading page ...
page loaded
acquiring values ...
values acquired
running eth trade
-0.37
Traceback (most recent call last):
File "C:\Users\pc adam\Documents\EISTI\algoprog\perso\python\fichiers\btc\ETHtradingbotV1.py", line 138, in <module>
profit = float(browser.find_element_by_xpath('/html/body/div[3]/section[16]/section[2]/section[2]/section[2]/div/div[1]/table/tbody/tr/td[15]/span').text)
ValueError: could not convert string to float: ''
первые 5 строк бесполезны. на 6-й строке я напечатал то, что я пытаюсь получить с плавающей точкой (). Как видите, это должно работать и ... Это работает! иногда.
это самая странная вещь в этом, она прекрасно работает в половине случаев! Я прочитал в inte rnet, что это может произойти, если вы попытаетесь использовать float () для вещей, которые не являются числами или имеют странное дерьмо, например пробелы. Как вы можете видеть, я думаю, что это не тот случай.
Когда я пытаюсь изолировать проблему, запустив упрощенную версию программы, например:
a = "-0.06%"
def removeprc(string): #removes the % from a string
string = str(string)
list = string.split('%')
string = " ".join(list)
return string
b = float(removeprc(a))
print(b)
, она выдает -0.06 и работает отлично ???
Так что я действительно застрял здесь. Это должно работать, но это не так. Даже хуже, он работает иногда , без причины. И когда я изолирую проблему, она работает нормально.
Любая помощь будет чрезвычайно признательна!
О, и если вы хотите увидеть весь код, он здесь: https://github.com/Madaxuorel/proj-ethTB/blob/master/ETHtradingbotV1.py