Задать вопрос
bimka
@bimka
Осваиваю Питон

Как спарсить содержимое ненумерованного списка?

Как спарсить товары по этой ссылке?
Когда пробую явно обратиться к необходимому блоку через его класс, то возвращается пустой список ([]).
import requests
from bs4 import BeautifulSoup

def get_products(url):
    '''Функция отправляет GET-запрос, возвращая список товаров
    '''
    r = requests.get(
        url, 
        headers={
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0', 
            'Accept': 'application/json, text/plain, */*', 
            'Accept-Encoding': 'gzip, deflate, br', 
            'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3', 
            'api-version': '3.0',
            'client-token': '7ba97b6f4049436dab90c789f946ee2f', 
            'Connection': 'keep-alive', 
            'DNT': '1', 
            'Host': 'sbermarket.ru',
            'is-storefront-ssr': 'false', 
            'Referer': 'https://sbermarket.ru/',
            'Sec-Fetch-Dest': 'empty', 
            'Sec-Fetch-Mode': 'cors', 
            'Sec-Fetch-Site': 'same-origin',
            'TE': 'trailers', 
            
        }
        )
    soup = BeautifulSoup(r.text, 'html.parser')
    body = soup.find_all("ul", class_="ProductsGrid_styles_grid__zigKP")
    return body

if __name__ == "__main__":
    url = 'https://sbermarket.ru/categories/moloko-iaitsa-new/moloko'
    products = get_products(url)
    print(products)


Когда пробую расширить область поиска, убрав класс элемента, как показано ниже
body = soup.find_all("ul")
В этом случае получаю список, который не содержит мой ненумерованный список:
[<li><a class="footer__link" href="/about">О компании</a></li>, <li><a class="footer__link" href="/contacts_2">Контакты</a></li>, <li><a class="footer__link" href="https://job.sbermarket.ru/">Наши вакансии</a></li>, <li><a class="footer__link" href="/terms-sbermarket">Документы</a></li>, <li><a class="footer__link" href="https://job.sbermarket.ru/">Стать партнером</a></li>, <li><a class="footer__link" href="/how-we-work-video">Как мы 
работаем</a></li>, <li><button class="footer__link">Зоны доставки</button></li>, <li><a class="footer__link" href="/delivery2">Доставка и оплата</a></li>, <li><a class="footer__link" href="/faq-sbermarket">Помощь</a></li>]

Хотя при использовании Инспектора Инструмента разработчика для Firefox я могу ясно видеть мой блок.
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы