python ускоряет эту функцию

#python #http #optimization #beautifulsoup #req

#python #http #оптимизация #beautifulsoup #запрос

Вопрос:

я уже некоторое время пытаюсь найти, как как-то ускорить это

код

 def get_resellers(sellerid, price, userassetid, id):
    data = {"expectedCurrency":1,"expectedPrice":price, "expectedSellerId":sellerid,"userAssetId":userassetid}
    headers = {"X-CSRF-TOKEN":csrftoken}
    k = requests.post(f"https://economy.roblox.com/v1/purchases/products/{id}", data=data, headers=headers, cookies=cookies)

def check_price(id):
    while True:
        try:
            t0 = time.time()
            soup = BeautifulSoup(requests.get(f"https://www.roblox.com/catalog/{id}").content, 'html.parser')
            data_expected_price, data_expected_seller_id, data_userasset_id = soup.select_one('[data-expected-price]')['data-expected-price'], soup.select_one('[data-expected-seller-id]')['data-expected-seller-id'], soup.select_one('[data-lowest-private-sale-userasset-id]')['data-lowest-private-sale-userasset-id']
            t1 = time.time()
            total = t1 - t0
            print(total)
            if int(data_expected_price) < 0.7*int(data_expected_price):
                    get_resellers(data_expected_seller_id, data_expected_price, data_userasset_id, id)
        except:
                pass
  

есть ли какой-либо более быстрый способ сделать это или извлечь материал, или выполнить http-запрос и т.д. все может помочь!
также: для покупки и проверки цены требуется около 0,7 секунды, поскольку каждый раз необходимо загружать сайт, есть ли способ сделать это быстрее?

Комментарии:

1. Пожалуйста, объясните, что вы делаете. Почему for i in range(sys.maxsize**10) ? Было бы быстрее, если бы вы не повторяли цикл больше раз, чем атомов в известной вселенной…

2. да, это почти бесконечный цикл for, поскольку я слышал, что цикл for имеет меньше кода операции, чем цикл while, поэтому это означает, что он быстрее

3. я использовал его вместо цикла while

4. Что вы подразумеваете под «быстрее» ? Это никогда не заканчивается. Это не быстрее, чем что-либо. И нет, я уверен, что while True ни в коем случае не будет медленнее.

5. Хорошо, это имеет смысл, но две вещи: 1) это уже недостаточно быстро? 2) Я не уверен, что это хорошая вещь. Вы, безусловно, нарушаете какой-то этикет, так часто повторяя запрос. Этот код может быть классифицирован как DoS-атака с теоретически более серьезными последствиями, чем запрет ip.