Это потому, что эта страница полностью динамична c, что означает, что javascript выполняет всю работу, а BeautifulSoup4 не запускается JS.
Вам необходимо выбрать здесь:
- A) Переключиться на что-то вроде Selenium
- B) Проверить, какие XHR-сообщения отправляет сайт на api / сервер, и попытаться эмулировать это с python.
В случае B вы увидите, что сайт выполняет этот вызов:
curl 'https://api.quickfs.net/stocks/AAPL:US/ovr/Annual/' \
-XGET \
-H 'Accept: application/json, text/plain, */*' \
-H 'Content-Type: application/json' \
-H 'Origin: https://quickfs.net' \
-H 'Accept-Language: en-us' \
-H 'Host: api.quickfs.net' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15' \
-H 'Referer: https://quickfs.net/company/AAPL:US' \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'Connection: keep-alive' \
-H 'X-Auth-Token: ' \
-H 'X-Referral-Code: '
Вместо этого вы можете сделать следующее:
import requests
response = request.get("https://api.quickfs.net/stocks/AAPL:US/ovr/Annual/")
data = response.json()
Где данные будут необработанные данные, которые использует сайт для представления информации:
{
"datasets": {
"metadata": {
"_id": {},
"qfs_symbol": "NAS:AAPL",
"currency": "USD",
"fsCat": "normal",
"name": "Apple Inc.",
"gs3_version_at_metadata_update": 20191106,
"exchange": "NASDAQ",
"industry": "Technology Hardware & Equipment",
"symbol": "AAPL",
"country": "US",
"price": 278.58,
...
}
}