Я не знаком с OLS и Plotly, и я думаю, что, вероятно, есть более простой способ получить доступ к этим значениям, но просто для извлечения их из текста вы можете использовать регулярное выражение , как этот :
import re
text = '<b>OLS trendline</b><br>Observations = 0.000411 * Date + -603422.036990<br>R<sup>2</sup>=0.952751<br><br>Date=%{x}<br>Observations=%{y} <b>(trend)</b>'
numbers = re.findall("(-?\d[\d.]+)", text)
first_value = numbers[0] # 0.000411
second_value = numbers[1] # -603422.036990
Обратите внимание, что это не будет работать с числами в научной нотации c или если есть другие числа перед теми, которые вы хотите извлечь в тексте (обе проблемы можно решить, если необходимо, шаблон более сложный)
Без использования регулярных выражений вы можете сделать что-то вроде
first_value = text.split('Observations = ', 1)[1].split(' ')[0]
second_value = text.split('Date + ', 1)[1].split("<br")[0]
Но я бы посоветовал против такого подхода, поскольку он быстро становится грязным и хрупким
Другой альтернативой будет использование библиотеки parse
n1, n2 = parse.search("<br>Observations = {} * Date + {}<br>", text)