Как обойти HTTP Error 429?
Я столкнулся с проблемой,а именно с обходом ограничения запроса в данной ссылке https://www.instagram.com/'+ parse +'/?__a=1'.Я пробовал обойти через подмену User-agent,но у меня ничего не получилось
import json
import urllib.request
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
url = 'https://www.instagram.com/zuck/?__a=1'
rq = urllib.request.Request(url, headers=headers)
data1 = urllib.request.urlopen(rq)
data = json.loads(data1.read())
print("id",data['graphql']['user']['id'])
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
HTTP 429 Too Many Requests код ответа указывает, что пользователь отправил слишком много запросов за последнее временя ("ограничение скорости" или "rate limiting" ).
Обойти можно:
- сделать паузы между запросами;
- менять user-agent;
- менять ip через proxies
Но 429 можно встретить и при единичном запросе:
>>> import requests
>>> url = 'https://www.instagram.com/geeks_for_geeks/'
>>> headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}
>>> r = requests.get(url, headers)
>>> r
<Response [429]>
а при указании headers=headers:
>>> r = requests.get(url, headers=headers)
>>> r
<Response [200]>