Если при использовании `requests` и `BeautifulSoup` вы получаете пустой результат, скорее всего, данные на сайте TradingView загружаются динамически с помощью JavaScript. Обычный HTTP-запрос через `requests` не будет исполнять JavaScript и поэтому возвращает неполные данные страницы.
Чтобы извлечь динамически загружаемый контент, можно использовать следующие подходы:
1. **Использование Selenium**: Selenium позволяет вам автоматизировать взаимодействие с веб-браузером. С помощью Selenium WebDriver вы можете программно открыть страницу в браузере, дождаться полной загрузки контента и затем извлечь необходимые данные.
```python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
service = Service(ChromeDriverManager().install())
browser = webdriver.Chrome(service=service)
url = 'https://ru.tradingview.com/symbols/MOEX-DSKY/news/'
browser.get(url)
# Ожидание загрузки контента, возможно, понадобится использовать более умное ожидание
browser.implicitly_wait(10)
html = browser.page_source
soup = BeautifulSoup(html, 'html.parser')
# Теперь можно парсить содержимое с BeautifulSoup
# ...
browser.quit()
```
2. **Анализ сетевых запросов**: Иногда данные на динамических сайтах загружаются через AJAX-запросы к API. Откройте Инструменты разработчика в вашем веб-браузере (обычно это F12), перейдите к вкладке "Сеть" (Network) и обновите страницу. Ищите запросы, которые возвращают данные в формате JSON. Вы можете попытаться напрямую отправить запрос к этому API и получить данные.
3. **Использование сервисов для рендеринга JavaScript**: Существуют специализированные сервисы и инструменты, такие как Puppeteer, Playwright или Splash, которые позволяют рендерить страницы с JavaScript и затем получать их содержимое.
4. **Обход Cloudflare или других защит**: Если сайт использует Cloudflare для защиты от ботов и парсинга, тогда вам может потребоваться использовать специальные методы обхода или прокси-серверы, что уже выходит за рамки обычного парсинга.
Пожалуйста, имейте в виду, что для извлечения данных с веб-сайтов всегда следует уважать их политику использования и условия обслуживания, чтобы избежать нарушения законов о защите авторских прав и прав на личную информацию (например, GDPR). Также сайты часто имеют механизмы защиты от автоматизированного парсинга, поэтому ваша деятельность может быть ограничена или заблокирована.