Сбор ссылок на товары со страницы из тега "a"
Необходимо со следующей страницы - https://petrovich.ru/catalog/12101/?p=1 собрать ссылки на товары. Вот код каким я пытался собирать:
import requests
from bs4 import BeautifulSoup
response = requests.get('https://petrovich.ru/catalog/12101/?p=1')
soup = BeautifulSoup(response.text, 'lxml')
goods = soup.find('div', class_='product-list').find_all('div', class_='fade-in-list page-item-list pt-col-xxs-12 page-1-item page-item')
for item in goods:
href = item.find('div', class_='card-catalog-wide-body').find('a').get('href')
print(href)
В целом когда я просматривал страницу, я не мог найти того, что видел в браузере в просмотре кода. С чем это может быть связано? Это динамическая загрузка элементов?
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
А если проанализировать вкладку сеть в инструментах веб-разработчика вашего браузера можно написать такой код:
import json
import requests
cookies = {
'SIK': 'cwAAABTIkCQ9TVESklwJAA',
'SIV': '1',
'C_J-9nw43e5j67_hOMYMLQHTT6AtU': 'AAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAKBnLcnpQc-DqEX6VVI7F-3w-5RK3-E',
}
params = {
'limit': '40',
'offset': '20',
'path': '/catalog/12101/',
'city_code': 'spb',
'client_id': 'pet_site',
}
response = requests.get('https://api.petrovich.ru/catalog/v2.3/sections/12101', params=params, cookies=cookies)
for x in json.loads(response.text)['data']['products']:
print(x['title'])
print(x['price']['gold'])
print(f"https://petrovich.ru/catalog/{x['section']['code']}/{x['code']}")
Угол наружный Docke 3000 мм халва
730
https://petrovich.ru/catalog/9576125/638826
Скоба С1 120х100 мм для пазогребневой плиты
14
https://petrovich.ru/catalog/1571/625800
...
Бетонный фундаментный блок ФБС 5-4-2
890
https://petrovich.ru/catalog/813/132927
Кирпич печной Боровичи рядовой полнотелый 250х120х65 мм М200 1NF
29
https://petrovich.ru/catalog/1557/673012