2017-09-29 8 views
0

Voici mon code:Python Demandes requests.get API() appeler avec params ne fonctionne pas comme prévu (réponse ne tient pas compte params)

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)

quand j'imprimer response.content, tous Je reçois est:

<!-- 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--> 

Quelle est la réponse que vous recevez lorsque vous accédez à: view-source: http://www.americhoice.com/find_doctor/Ver2/results_doc.jsp

Cependant, je cherche à retourner le code html complet reçu lorsque vous accédez à l'URL générée par response.url

view-source: 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+SURGERY

Les problèmes semble être que la demande n'est pas l'envoi de la requête GET params correctement

choses que j'ai essayé (sans succès): 1) Demander l'URL complète (codée) au lieu d'utiliser un dictionnaire params 2) Utilisation de la bibliothèque de urllib3 au lieu des demandes bibliothèque

Répondre

0

Tout d'abord, le site Web source-source que vous donnez renvoie une erreur 404. Deuxièmement, qu'obtenez-vous lorsque vous imprimez response.url? Il devrait retourner l'URL complète, y compris params concaténé.

+0

Ah, avant que je ne sois dans la même session, ça arrivait, maintenant quand j'ai redémarré mon navigateur, j'ai un écran vide (toujours une requête de 200). Doit nécessiter des données de session –

+0

@AmiyaDiwan Vous avez peut-être besoin de vous connecter ou d'autre chose avant d'envoyer une requête 'GET'? Dans ce cas, vous devez utiliser 'requests.session' pour conserver la session pendant les différentes requêtes. – Sraw

+0

Merci @Sraw, c'était la solution! –