Не получается спарсить ссылку с Binance

Не получается вытащить ссылку из href с Binance, пробовал после art выводить то, что спарсил, но в итоге в консоле пусто,не хочет искать через класс, может кто сталкивался или может помочь?

import requests
from bs4 import BeautifulSoup as BS

def get_token():
  headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/24.10.0.0 Safari/537.36"}

  url = 'https://www.binance.com/ru/support/announcement/новые-листинги-криптовалюты?c=48&navId=48&hl=ru'
  r = requests.get(url=url, headers=headers)
  soup = BS(r.text, 'lxml')
  art = soup.find_all('a', class_='css-1w8j6ia')
 
  for i in art:
    ss = i.get('href')
    print(ss)



get_token()

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Ben Puls

Если вы посмотрите, какой текст страницы возвращает requests, то увидите, что там нет ваших элементов с необходимым классом. Скорее всего это связано с тем, что данные на странице подгружаются несколько позже.

В таком случае имеет смысл использовать playwright или selenium, чтобы найти нужные вам элементы.

Часть с поиском нужных тегов в функции get_links() осталась практически неизменной, а вот в функции run_playwright() мы как раз запускаем движок, открываем страницу, получаем контент, ищем нужные элементы, закрываем сессию и затем перебираем нужные нам ссылки, например, через списковое включение.

from bs4 import BeautifulSoup as BS
from playwright.sync_api import sync_playwright

link = "https://www.binance.com/ru/support/announcement/новые-листинги-криптовалюты?c=48&navId=48&hl=ru"


def get_links(text: str):
    soup = BS(text, "html.parser")
    return soup.find_all('a', class_='css-1w8j6ia', href=True)


def run_playwright():
  with sync_playwright() as p:
      browser = p.chromium.launch()
      page = browser.new_page()
      page.goto(link)
      my_content = page.content()
      browser.close()
      return get_links(my_content)

art = run_playwright()
links = [f"https://binance.com{i.get("href")}" for i in art]
→ Ссылка