Как уже упоминалось в комментариях, вот ваш шаг 1:
targets = soup.find("div",{'data-reactid':'41'})
rows = []
for target in targets:
data = target.find_all('span')
row = []
for d in data:
row.append(d.text)
rows.append(row)
for row in rows:
print(row)
вывод:
['Total Revenue', '21,076,500', '21,025,200', '22,820,400', '24,621,900']
['Cost of Revenue', '9,961,200', '10,239,200', '12,199,600', '14,417,200']
['Gross Profit', '11,115,300', '10,786,000', '10,620,800', '10,204,700']
['Operating Expenses', 'Research Development', 'Selling General and Administrative', '2,229,400', '2,200,200', '2,231,300', '2,384,500', 'Total Operating Expenses', '2,045,500', '2,200,200', '2,231,300', '2,384,500']
et c.