Вызов API запросов Python Requests.get() с параметрами не работает должным образом (ответ игнорирует параметры)

Вот мой код:

import requests

find_doctors_url = 'http://www.americhoice.com/find_doctor/Ver2/results_doc.jsp'

payload ={"specialty":"ORSU","docproducts":"HOBD,HLOP","planNameDropDoc":"HOBD,HLOP","plan":"uhcwa","zip":"98122","zipradius":"10","findButton":"FIND DOCTOR","specialtyName":"ORTHOPAEDIC SURGERY"}

response = requests.get(find_doctors_url,params=payload)
print(response.url)
print(response.content)

когда я печатаю response.content, все, что я получаю, это:

<!-- NEAADR0179 -Anil Kumar Vutikuri *** End-->


<!--BEGIN SETTING HEADERS TO NO CACHE-->

<!--END SETTING HEADERS TO NO CACHE-->

<!--SET SESSION VALUES FROM URL PARAMETERS-->


<!--END SET SESSION VALUES FROM URL PARAMETERS-->

Какой ответ вы получаете при переходе на: view-source:http://www.americhoice.com/find_doctor/Ver2/results_doc.jsp

Однако я пытаюсь вернуть полный HTML-код, полученный при переходе по URL-адресу, сгенерированному response.url.

вид-источник:http://www.americhoice.com/find_doctor/Ver2/results_doc.jsp?specialty=ORSU&docproducts=HOBD%2CHLOP&planNameDropDoc=HOBD%2CHLOP&plan=uhcwa&zip=98122&zipradius=10&findButton=FIND+DOCTOR&specialtyName=ORTHOPAEDIC+ХИРУРГИЯ

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

Вещи, которые я пробовал (безуспешно): 1) Запрос полного URL-адреса (закодированного) вместо использования словаря параметров 2) Использование библиотеки urllib3 вместо библиотеки запросов


person Amiya Diwan    schedule 29.09.2017    source источник


Ответы (1)


Во-первых, указанный вами исходный веб-сайт возвращает ошибку 404.

Во-вторых, что вы получите, когда напечатаете response.url? Он должен возвращать полный URL-адрес, включая объединенные params.

person Sraw    schedule 30.09.2017
comment
Ах, раньше, когда я был в том же сеансе, он подходил, теперь, когда я перезапускаю браузер, я получаю пустой экран (все еще 200 запросов). Должны требоваться некоторые данные сеанса - person Amiya Diwan; 30.09.2017
comment
@AmiyaDiwan Итак, может быть, вам нужно войти в систему или что-то еще, прежде чем отправлять запрос GET? В этом случае вы должны использовать requests.session для сохранения сеанса во время разных запросов. - person Sraw; 30.09.2017
comment
Спасибо @Sraw, это было исправление! - person Amiya Diwan; 30.09.2017