Различные выходные данные для одного и того же кода запроса интегрированы с циклом для очистки сайта Shopee. - PullRequest
0 голосов
/ 26 апреля 2019

Пытаясь узнать цену и название продуктов, перечисленных в магазине в 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

Каждый день этот код работает безотказно в течение всего лишь одного раза нажатия на здание.

Пожалуйста, объясните мне причину и помогите мне решить проблему! Спасибо!

...