Div классы имеют одинаковые имена но разные значения, как их перебирать

Я делаю парсер на питоне и столкнулся с проблемой, что div классы имеют одинаковое название, и когда я пытаюсь спарсить любой div класс то берется самый первый, как их пероребирать?

import requests
from bs4 import BeautifulSoup

url = 'https://ozhegov.slovaronline.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
resp = requests.get(url, headers=headers)
bs = BeautifulSoup(resp.text, 'html.parser')
temp = bs.find('div', 'col-lg-4 col-md-6 col-sm-12 article-link')
print(temp)

В консоли выдается это:

<div class="col-lg-4 col-md-6 col-sm-12 article-link"><a href="/2-A" title="А... ">А...</a></div>

Скрин:скриншот сайта


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

Автор решения: Andrew Hobbit

Используйте find_all вместо find. Получите список объектов.

import requests
from bs4 import BeautifulSoup

url = 'https://ozhegov.slovaronline.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
resp = requests.get(url, headers=headers)
bs = BeautifulSoup(resp.text, 'html.parser')
temp = bs.find_all('div', 'col-lg-4 col-md-6 col-sm-12 article-link')
for item in temp:
    print (item)

Или select:

temp = bs.select('.col-lg-4.col-md-6.col-sm-12.article-link')

Или, как предложил Сергей Ш в комментарии:

import requests
from bs4 import BeautifulSoup

url = 'https://ozhegov.slovaronline.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
resp = requests.get(url, headers=headers)
bs = BeautifulSoup(resp.text, 'html.parser')
print(*bs(class_='article-link'), sep='\n') 
→ Ссылка