Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PYTHON ВОПРОС ЦИКЛ FOR И REQUESTS

Помощник PYTHON Профи (607), на голосовании 2 месяца назад
 КОД С ЦИКЛОМ ( КОТОРЫЙ КАЖДЫЙ ИТЕРАЦИЮ ВЫДАЁТ ОДИН ОТВЕТ )

resourses = ['some1', 'some2', 'some3']

for i in range(len(resourses)):
data = {'source': resourses[i]}
response = session.get('link', headers=headers, data=data).text
print(response)


КОД БЕЗ ЦИКЛА ( ВЫДАЁТ РАЗНЫЕ ОТВЕТЫ )

data = {'source': 'some1'}
response = session.post('link', headers=headers, data=data).json()
print(response)

data = {'source': 'some2'}
response = session.post('link', headers=headers, data=data).json()
print(response)

data = {'source': 'some3'}
response = session.post('link', headers=headers, data=data).json()
print(response)




Код в цикле выдаёт все время один ответ, а код ниже без цикла разные ответы. Помогите
Голосование за лучший ответ
Roots Мудрец (10467) 3 месяца назад
Так, стоп! Ты в цикле вместа POST запроса отправляешь GET.
Ещё и с данными, а GET не подразумевает данные.
Поменяй на session.post (...)
Помощник PYTHONПрофи (607) 3 месяца назад
Я код другой взял сорян. У меня правильно всё в этом плане, я просто с прошлых вопросов копировал
Roots Мудрец (10467) пррапра, сделай вот так, здесь уже абсолютно точно всё должно работать for r in resources: print(session.get('', headers=headers, data={'source': r}).text) Если опять также, то дай мне url сервера, я проверю Кстати, уверен, что там не надо в формате json отправлять запрос? Тогда надо использовать не data=, а json=, иначе он отправит в виде формы данные
Помощник PYTHONПрофи (607) 3 месяца назад
Я импортировал fake_useragent и поставил в запрос его - всё заработало. Спасибо тебе за помощь!
Roots Мудрец (10467) пррапра, а. Ты, получается, какое-то скрытое API используешь, если сервер требует юзер-агента. Обычно нормальные, открытые и документированные API не требуют юзер агента. Твой запрос просто отклоняли как подозрительный, скорее всего.
Помощник PYTHONПрофи (607) 3 месяца назад
 headers={'user-agent': fake_useragent.UserAgent().random} вместо
headers=headers

И заработало
Похожие вопросы