当我致电https://www.shirtinator.de/cT=search/motives&sq=junggesellenabschied时 在上方,您可以切换到下一侧并切换显示的50到100个动机。
我尝试使用pythons请求编写包含ajax脚本参数的post请求,分别在50和100之间进行更改以改变方面。
我使用了chromes开发人员工具来检测post请求的post formform数据。
这是我的脚本,它无法提供所需的数据。
import requests
import json
url = "https://www.shirtinator.de/?cT=search/motives&sq=junggesellenabschied"
data1= {"xajax":"searchBrowse","xajaxr":"1455134430801","xajaxargs[]":"1","xajaxargs[]":"true","xajaxargs[]":"true","xajaxargs[]":"motives","xajaxargs[]":"100"}
r = requests.post(url, data=data1)
result = r.text
print result
感谢您的支持。
最佳
答案 0 :(得分:0)
在创建dict(data1)时多次使用相同的键时,最后一个值将覆盖所有先前出现的值。 在你的情况下,你得到的是:
In [2]: data1= {"xajax":"searchBrowse","xajaxr":"1455134430801","xajaxargs[]":"1","xajaxargs[]":"true","xajaxargs[]":"true","xajaxargs[]":"motives","xajaxargs[]":"100"}
In [3]: data1
Out[3]: {'xajax': 'searchBrowse', 'xajaxargs[]': '100', 'xajaxr': '1455134430801'}
如您所见,xajaxargs []参数不包含它应包含的所有值作为数组。以请求理解的方式执行此操作的正确方法是使xajaxargs []的值成为这些值的列表:
In [4]: data1= {"xajax":"searchBrowse","xajaxr":"1455134430801","xajaxargs[]":["1", "true", "true", "motives","100"]}