На статических элементах код работает. Если загрузка динамическая, то надо загрузить страницу в фоновом режиме и затем отпарсить.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup as bs
...
Демо работы:
import requests
from bs4 import BeautifulSoup as bs
url = 'https://habr.com/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 OPR/99.0.0.0'
}
def get_soup(url):
res = requests.get(url, headers=headers)
return bs(res.text, 'html.parser')
a_page = get_soup(url)
a = a_page.find_all('div', class_='v-portal')
if len(a) > 0:
for x in a:
print('1')
else:
print('Не найдено элементов с указанным классом.')
https://colab.research.google.com/drive/1CylRVYRyrJe4A4fxa37hj7J94GRlSNbN?usp=sharing