#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.