Может быть проще использовать регулярное выражение, чтобы найти значение этого класса. Затем найдите конкретный текст и возьмите следующий элемент-брат.
import requests
from bs4 import BeautifulSoup
import re
url = 'https://www.investing.com/equities/apple-computer-inc'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
overviewTbl = soup.find('div', {'class': re.compile(r"overviewDataTable")})
value = overviewTbl.find(text='Shares Outstanding').parent.next_sibling.text
Вывод:
print (value)
4,334,335,000
Использование .select
Но для использования селектора, я думаю, использование nth-of-type
работает вместо nth-child
. Или, по крайней мере, для меня.
num_shares = soup.select("div.clear.overviewDataTable.overviewDataTableWithTooltip > div:nth-of-type(14) > span.float_lang_base_2.bold")
print(num_shares)
Вывод:
[<span class="float_lang_base_2 bold">4,334,335,000</span>]