2015-11-28 5 views
0

Я пытаюсь получить некоторые данные с одной веб-страницы. Эта страница использует .Net. Согласно firebug, когда я нажимаю кнопку, он отправляет два запроса.Запросы - GET зависит от POST

Есть информация в запросе POST. Затем есть запрос GET, который получает информацию, которую я хочу получить.

Я использую модуль requests. Я не знаю, как заставить эти два запроса работать вместе.

Я попытался это:

r = requests.post("https://example.com/vyber.aspx",data=_params) # _params is a dictionary obtained from Firebug 
r = requests.get("https://example.com/vyber.aspx") 
print r.content 

Но это не работает (она возвращает неправильный HTML), потому что эти два запроса независимы. Я полагаю, что мне нужно хранить какие-то данные (может быть, файлы cookie или что-то еще), чтобы сделать запрос GET. Но я не знаю, как это сделать.

Как я мог это сделать?

ответ

0

Если у меня вам нужно использовать session. В документации says-

Объект Session позволяет сохраняться определенные параметры по запросов. Он также сохраняет файлы cookie во всех запросах, сделанных из экземпляра сеанса , и будет использовать объединение соединений urllib3. Поэтому, если вы делаете несколько запросов на один и тот же хост, базовое соединение TCP будет повторно использоваться, что может привести к значительному увеличению производительности (см. HTTP-постоянное соединение).

s = requests.Session() 
r = s.get('http://httpbin.org/cookies', cookies={'from-my': 'browser'}) 
0

вы также можете добавить отправить заголовки, чтобы сделать его реальным

ses = requests.session() 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', 
} 
r = ses.post("https://example.com/vyber.aspx",data=_params, headers=headers) 
r = ses.get("https://example.com/vyber.aspx", headers=headers) 
print r 

вы должны проверить, что ваши PARAMS подобны этим { «name_in_html»: «value_you_want '} также иногда сайты ждать получить еще один параметр, который имеет уже значение как

<input type="TYPE" id="ID" name="NAME" value="SOMEVAL"> 

так что вы должны добавить { «NAME»: «»} SOMEVAL к вам данных

Смежные вопросы