Python: request.get, итерационный url в цикле

Я пытаюсь получить информацию от stats.nba.com путем итерации request.get (url) в цикле for, где url изменяется на каждой итерации. Если я просто повторю его, как только он работает, но два или более, кажется, дает ошибки, и я не уверен, почему. Я новичок в программировании, поэтому любая информация будет полезна. Заранее спасибо. Вот мой код:

import requests import json team_id = 1610612737 def get_data(url): response = requests.get(url) if response.status_code == 200: data = response.json() return data else: print(response.text) print(response.status_code) for i in range(30): # 30 NBA Teams base_url = "http://stats.nba.com/stats/teamdetails?teamID=" team_url = base_url + str(team_id) data = get_data(team_url) ## Do stuff ## team_id +=1 

Если я делаю «для i в диапазоне (1):« он работает, но я получаю status_code = 400 для каждой итерации, если диапазон больше 1. Спасибо за помощь!

  • Как я могу конвертировать 24 часа в 12 часов?
  • Почему я получаю «UserWarning: модуль dap уже импортирован из None ...»
  • Как обрабатывать \ 2 в пути Windows с помощью Python?
  • Открытие файла в режиме добавления и поиск
  • Чтение файла Excel в python с использованием pandas
  • Как исправить: «UnicodeDecodeError: кодек ascii не может декодировать байт»
  • Сравнение двух идентичных объектов в Python (2.7) возвращает False
  • Python реализует простое хранилище веб-данных
  • One Solution collect form web for “Python: request.get, итерационный url в цикле”

    Веб-сайт ограничивает количество запросов в секунду, поэтому вам нужно включить определенные заголовки запросов или задержать задержку в вашем скрипте (первый вариант является самым быстрым и, вероятно, самым надежным из двух).

    Метод заголовков:

     ''' add under team_id = 1610612737 ''' HEADERS = {'user-agent': ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5)' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/45.0.2454.101 Safari/537.36'), 'referer': 'http://stats.nba.com/scores/'} 

    Затем добавьте это в свой ответ:

     response = requests.get(url, headers=HEADERS) 

    * Вам не нужно задерживать ваш скрипт вообще, если вы используете этот метод.

    Метод задержки:

     import time time.sleep(10) # delays for 10 seconds (put in your loop) 

    Похоже, что пропустить или пропустить, используя задержку, поэтому я бы не рекомендовал использовать, если это абсолютно необходимо.

    Python - лучший язык программирования в мире.