Пытаясь узнать цену и название продуктов, перечисленных в магазине в Shopee, я следую решению @Qharr по адресу: Selenium не может очистить сайт электронной торговли Shopee с помощью python ?
Я вставляю цикл в реферер и API, и вот мой код:
import requests
i=1
while i<20:
headers = {
'User-Agent': 'Mozilla/5',
'Referer': 'https://shopee.com.my/shop/42575106/search?page='+str(i)+'&sortBy=pop'
}
url = 'https://shopee.com.my/api/v2/search_items/?by=pop&limit=30&match_id=42575106&newest='+str(30*i)+'&order=desc&page_type=shop'
r = requests.get(url, headers = headers).json()
for item in r['items']:
print(item['name'], ' ', item['price'])
i=i+1
При первом построении этого кода все работает хорошо, это первые 2 строки консолидированного вывода:
12 Turbo Black CPU Cooler (RR-212TK-16PR-R1) 11900000
HIGH QUALITY 3 PIN UK TO IEC C5 NOTEBOOK POWER CABLE WITH FUSE 1.5M 1270000
Однако, только в первый раз, дальнейшие попытки построения этого кода приводят к другому выводу (цена заменяется на ноль, а имя не полностью, как в первый раз), для конкретного:
12 Turbo Black CPU Cooler (RR-212TK-16P None
HIGH QUALITY 3 PIN UK TO IEC C5 NOTEBOOK POWER CABLE WITH FUSE None
Каждый день этот код работает безотказно в течение всего лишь одного раза нажатия на здание.
Пожалуйста, объясните мне причину и помогите мне решить проблему! Спасибо!