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"/>]