Как спарсить данные с одинаковым классом id ,но с разным названием?

Рейтинг: -2Ответов: 1Опубликовано: 07.08.2023

Не судите строго,я новичок и многого не знаю.(Изображение прикрепил) Дан класс "bigline" в нем есть "id" записи к которой мне надо обратиться ,но я не знаю как! Если я прошу найти все на "li" то он выдает мне ошибку так ,как на сайте полно и других элементов так же с "li".Сам сайт: [https://bloknot-astrakhan.ru/] Заранее спасибо!

Вот сам код сайта

Ответы

▲ 0Принят

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

import requests
from bs4 import BeautifulSoup as BS

r = requests.get('https://bloknot-astrakhan.ru/')
soup = BS(r.content, 'lxml')

news = soup.find("ul", {"class": "bigline"})
for article in news.find_all('li'):
    print(article.get('id'))
Вывод:
bx_3218110189_1633348
bx_3218110189_1633344
bx_3218110189_1633298
bx_3218110189_1633278
bx_3218110189_1633277
bx_3218110189_1633245
bx_3218110189_1633238
bx_3218110189_1633230
bx_3218110189_1633223
bx_3218110189_1633212