使用params的Python请求API requests.get()调用未按预期工作(响应忽略参数)

时间:2017-09-29 23:54:23

标签: python web-scraping get python-requests urllib3

这是我的代码:

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

导航到以下内容时收到的响应是: 视图源:http://www.americhoice.com/find_doctor/Ver2/results_doc.jsp

但是,当我导航到response.url生成的网址时,我正在寻求返回收到的完整html

视图源: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

问题似乎是请求没有正确发送GET查询参数

我尝试过的事情(失败): 1)请求完整的URL(编码)而不是使用params字典 2)使用urllib3库而不是Requests库

1 个答案:

答案 0 :(得分:0)

首先,您提供的视图源网站会返回404错误。

其次,打印response.url时会得到什么?它应该返回包含params连接的完整URL。