Beautifull Soup не видит теги и атрибуты

Всем привет.

Пытаюсь спарсить цены на газобетонновые блоки с сайта https://sm.lsr.ru/spb/catalog/kirpich-gazobeton/gazobeton/kikerinskiy-gazobetonnyy-zavod/plotnost-d200/.

Получаю []

Подскажите, пожалуйста, что я делаю не так?

Интересует, вот этот кусок (itemprop="price" content="7990.00"):

    <div class="b-price " itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                    <div class="b-price__current "><span>7990 <sup>00</sup></span> ₽/м3</div>
                        
                    <meta itemprop="price" content="7990.00">
            <meta itemprop="priceCurrency" content="RUB">
                
                    <link itemprop="availability" href="http://schema.org/InStock">
                
    </div>

Пишу код:

import requests
from bs4 import BeautifulSoup
        
res = requests.get('https://sm.lsr.ru/spb/catalog/kirpich-gazobeton/gazobeton/kikerinskiy-gazobetonnyy-zavod/plotnost-d200/')
soup = BeautifulSoup(res.text)
soup.find_all(attrs={'itemprop' : 'offers'})

получаю

[]

или пробую так

soup.find_all('meta')

получаю:

[<meta charset="utf-8"/>,
 <meta content="width=device-width, initial-scale=1.0" name="viewport"/>,
 <meta content="ie=edge" http-equiv="X-UA-Compatible"/>]

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

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

Проблема в том, что вы не передаете в заголовке запроса параметр User-Agent, если не передать его, то ответом будет ошибка HTTP 403 Forbidden.

Вот исправленный вариант кода:

import requests
from bs4 import BeautifulSoup

url = "https://sm.lsr.ru/spb/catalog/kirpich-gazobeton/gazobeton/kikerinskiy-gazobetonnyy-zavod/plotnost-d200/"
headers = {"User-Agent": "UA/Python 0.0.1"}

r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text)
print(soup.find_all("meta", attrs={"itemprop" : "price"}))
[<meta content="7990.00" itemprop="price"/>, <meta content="7990.00" itemprop="price"/>, <meta content="7990.00" itemprop="price"/>]
→ Ссылка