这是一个特定于站点的问题,我很好奇,因为我仍然在学习web请求的动态性。在
我知道如何使用pyton的请求库将数据负载添加到http请求中:
payload = {
"data": "whatever_data_string_here"
}
r = requests.get('url', data=payload)
关于何时以及如何应用这种方法,我基本上还是没有什么线索。我在玩不同类型的网站,试图找到独特的方法来理解不同的数据请求方法,但在以下网站上遇到了难题:
^{pr2}$忽略了他们糟糕的缩写选择,我试图找出如何迭代不同专业类型的请求。在
该站点的一般功能是您可以从Specialty
下拉表单中选择一个选项,单击Search
,并显示相关结果。在
尽我所能,似乎是通过与请求头一起提交的数据检索数据,如下所示:
specialty=Massage_Bodywork&specother=&state=ALL&Submit=Search+%C2%BB
通过检查控制台视图中的请求头,我发现了这一点,但不知道如何将其应用于我的http请求。在
我试过以下方法:
for option in options:
r = requests.get('http://www.aaimedicine(dot)com/fap/', data={"Form Data": "specialty={}&specother=&state=ALL&Submit=Search+%C2%BB".format(option)})
它不响应我要查找的数据,只是在提交选择之前给出原始url的html。在
我想知道如何发出这些类型的请求,以便迭代选项。在
我已经意识到这种类型的
POST
请求可以在这个实例中通过获取以下头源代码来实现:specialty=Speciality_Choice_Value&specother=&state=ALL&Submit=Search+%C2%BB
并通过请求模块利用它:
如果您查看
/fap
页面的html源代码,您将看到所以我猜你可能只需要请求.post()而不是.get()。在
但是正如ettanany在上面的评论中提到的,这真的不是一个好主意,因为它不是一个webapi(它随时可能更改,并破坏您的脚本)。在
相关问题 更多 >
编程相关推荐