Я пытаюсь сделать парсер максимальной цены покупки steam

Я пытаюсь сделать парсер максимальной цены покупки steam для предметов из игры Dont starve, однако я столкнулся с некоторой проблемой, парсер работает, однако периодически происходит ошибка 'NoneType' object is not subscriptable, я предполагаю, что это как-то зависит от полноты подгрузки данных со страницы, но использовать selenium тоже не помогает. Я пока не реализовал подсчёт страниц для парсинга поэтому использую конструкцию for in range

import requests
from bs4 import BeautifulSoup
import fake_useragent

#get name
name_lst = []
price_lst = []
user = fake_useragent.UserAgent().random

for page in range(1, 45):
    header = {"user-agent": user}
    link = f"https://steamcommunity.com/market/search?appid=322330#p{page}_popular_desc"
    answer = requests.get(link, headers = header).text
    soup = BeautifulSoup(answer, "lxml")
    for num_name in range(10):
        block = soup.find("div", id=f"result_{num_name}")
        name = block["data-hash-name"]
        name_lst += [name]

        #get price
        price = block.find("span", class_="sale_price").text
        price = float(price[1:-4])
        price_lst += [price]

#get dictionary with prices
d_prices = dict([[name_lst[x], price_lst[x]] for x in range(len(name_lst))])
print(d_prices)

Ошибка вот такая:

line 15, in <module>
    name = block["data-hash-name"]
           ~~~~~^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

Process finished with exit code 1

Ответы (1 шт):

Автор решения: E2key

Я решил проблему, дело оказалось в 429 ошибке (слишком много запросов к серверу) решается это созданием временных промежутков между обращениями к странице по типу:

time.sleep(5)

Это значение можно регулировать в зависимости от количества запросов

→ Ссылка