Проблема с парсингом сайта на Python

Когда я пытаюсь вытащить html код карточки у меня ничего не выходит. Постоянно на выходе None.

Сайт на котором осуществляется парсинг: https://pancakeswap.finance/prediction

Код:

import requests as r
from bs4 import BeautifulSoup as bs

url = 'https://pancakeswap.finance/prediction'
headers = {
    'user-agent' : 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Mobile Safari/537.36'
}
page = r.get(url, headers=headers)
soup = bs(page.content, 'lxml')

card1 = soup.find('div', class_='sc-eecfaa46-0 cioUee')
print(card1)

Текущий код после вмешательства Selenium:

import requests as r
from bs4 import BeautifulSoup as bs
from selenium import webdriver
import traceback

url = 'https://pancakeswap.finance/prediction'

driver = webdriver.Chrome()
try:
    driver.implicitly_wait(5)
    driver.get(url)
    print(f'Title: {driver.title!r}')

    card1 = driver.find_element(CLASS_NAME, 'sc-c4ec0fdf-0.sc-eecfaa46-1.dGKbaC.cejqaY')
    card2 = driver.find_element(CLASS_NAME, 'sc-c4ec0fdf-0.hWXObm')
    card3 = driver.find_element(CLASS_NAME, 'sc-c4ec0fdf-0.hWXObm')
    card4 = driver.find_element(CLASS_NAME, 'sc-eecfaa46-0.cioUee')
    card5 = driver.find_element(CLASS_NAME, 'sc-281cc2e7-0.cPpctU')

except:
    print(traceback.format_exc())

finally:
    driver.quit()

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

Автор решения: Timofey

Нужно указывать через by=By.CLASS_NAME

import requests as r
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from selenium.webdriver.common.by import By
import traceback

url = 'https://pancakeswap.finance/prediction'

driver = webdriver.Chrome()
try:
    driver.implicitly_wait(5)
    driver.get(url)
    print(f'Title: {driver.title!r}')

    card1 = driver.find_element(by=By.CLASS_NAME, 'sc-c4ec0fdf-0.sc-eecfaa46-1.dGKbaC.cejqaY')
    card2 = driver.find_element(by=By.CLASS_NAME, 'sc-c4ec0fdf-0.hWXObm')
    card3 = driver.find_element(by=By.CLASS_NAME, 'sc-c4ec0fdf-0.hWXObm')
    card4 = driver.find_element(by=By.CLASS_NAME, 'sc-eecfaa46-0.cioUee')
    card5 = driver.find_element(by=By.CLASS_NAME, 'sc-281cc2e7-0.cPpctU')

except:
    print(traceback.format_exc())

finally:
    driver.quit()
→ Ссылка