Как сказал Панкадж (так что примите его ответ, так как я только расширяю его первоначальный ответ), используйте URL-адрес запроса, чтобы получить данные в хорошем формате json. Вы также можете изменить параметры (например, изменить 'pageSize': '500'
, чтобы получить больше продуктов, чем просто 18 на первой странице:
import requests
url = 'https://shop.freedompop.com/api/shop/store/555/item'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
params = {
'page': '1',
'pageSize': '18',
'sort': 'RELEVANCE'}
jsonData = requests.get(url, headers=headers, params=params).json()
for product in jsonData['results']:
print (product['title'])
Выход:
Netgear Unite Mobile Hotspot (GSM)
LG Tribute 2, 8GB Blue (CDMA)
Samsung Galaxy S5, 16GB Charcoal Black (CDMA)
Samsung Galaxy S5, 16GB Shimmery White (CDMA)
Samsung Galaxy S5, 16GB Shimmery White (CDMA)
Samsung Galaxy S4 Enhanced, 16GB Black Mist (CDMA)
Kyocera Hydro Vibe, 8GB Black (CDMA)
Samsung Galaxy S4, 16GB White Frost (CDMA)
Samsung Galaxy S4, 16GB White Frost (CDMA)
Motorola Moto E (2nd Generation), 8GB Black (CDMA)
Apple iPhone 5s, 16GB Gold (CDMA)
Samsung Galaxy S4, 16GB Black Mist (CDMA)
Franklin Wireless R850 4G LTE Mobile Hotspot (CDMA)
Apple iPhone 6, 16GB Space Gray (CDMA)
Samsung Galaxy S4 Enhanced, 16GB White Frost (CDMA)
Huawei Union, 8GB Black (CDMA)
Samsung Galaxy S5, 16GB Copper Gold (CDMA)
Samsung Galaxy S4 Enhanced, 16GB Black Mist (CDMA)
Изменение параметров:
import requests
url = 'https://shop.freedompop.com/api/shop/store/555/item'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
params1 = {
'page': '1',
'pageSize': '18',
'sort': 'RELEVANCE'}
params2 = {
'page': '1',
'pageSize': '500',
'sort': 'RELEVANCE'}
jsonData = requests.get(url, headers=headers, params=params1).json()
print (len(jsonData['results']))
jsonData = requests.get(url, headers=headers, params=params2).json()
print (len(jsonData['results']))
Выход:
18
405