Как намекнул @PedroLobito, веб-страница не отвечает напрямую данными, она загружается после первоначального запроса с использованием JavaScript.Вот почему вы ничего не видите: исходный HTML не содержит данных о кроссовках.Данные извлекаются из конечной точки, которая возвращает JSON.Проще запросить это напрямую.
Используя инструменты разработчика, встроенные в веб-браузер, мы видим, что запрос POST выполняется для:
https://2fwotdvm2o-dsn.algolia.net/1/indexes/product_variants_v2/query?x-algolia-agent=Algolia for vanilla JavaScript 3.25.1&x-algolia-application-id=2FWOTDVM2O&x-algolia-api-key=ac96de6fef0e02bb95d433d8d5c7038a
и полезной нагрузки составляет
{"params":"distinct=true&facetFilters=()&facets=%5B%22size%22%5D&hitsPerPage=20&numericFilters=%5B%5D&page=0&query="}
Мы можем запросить это напрямую с помощью запросов и использовать метод json()
объекта ответа для фактического использования данных, например:
import json
import requests
url = 'https://2fwotdvm2o-dsn.algolia.net/1/indexes/product_variants_v2/query?x-algolia-agent=Algolia for vanilla JavaScript 3.25.1&x-algolia-application-id=2FWOTDVM2O&x-algolia-api-key=ac96de6fef0e02bb95d433d8d5c7038a'
data = {"params":"distinct=true&facetFilters=()&facets=%5B%22size%22%5D&hitsPerPage=20&numericFilters=%5B%5D&page=0&query="}
r = requests.post(url, data=json.dumps(data))
print(r.json()['hits'][0])
, что дает нам
{'product_template_id': 116662, 'shoe_condition': 'used', 'box_condition': 'badly_damaged', 'lowest_price_cents': 18500, 'instant_ship_lowest_price_cents': None, 'brand_name': 'adidas', 'category': ['lifestyle'], 'color': 'White', 'designer': 'Kanye West', 'details': 'Cream White/Cream White/Core White', 'gender': ['men'], 'grid_picture_url': 'https://image.goat.com/375/attachm...