使用Python请求库发送jquery AJAX GET请求

我有一个我需要抓取的网站,它使用jquery AJAX函数从服务器获取信息。 我一直在调查代码,我成功地从服务器获取响应:

data = {'part_number':'1234'} r = $.ajax({ type : 'GET', url : 'ajaxurl', data : data }) 

请注意,这是通过js控制台完成的,所以我已经登录了。当我尝试在python中进行操作时,我需要首先登录:

 import requests headers = {'User-Agent': 'Mozilla/5.0','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'} payload = {'username':'me','password':'1234'} link = 'login url' session = requests.Session() resp = session.get(link,headers=headers) cookies = requests.utils.cookiejar_from_dict(requests.utils.dict_from_cookiejar(session.cookies)) resp = session.post(link,headers=headers,data=payload,cookies =cookies) #until here sucesss!"############ url = "ajaxurl" my_params={'part_number':'1234'} r = session.get( url = url, data = my_params, cookies =cookies,headers =headers ) 

登录后的登录请求进行得很顺利但是对于GET响应,我收到了BAD REQUEST 400.我无法弄清楚如何格式化我的请求。 我不知道ajax对我的要求做了什么。 有人有什么想法吗?

提前致谢!

解决了! 我在标题中添加了'X-Requested-With': 'XMLHttpRequest'并执行了:

 pn = '1234' r = requests.get(ajaxurl + '?part_number=' + pn, headers=headers, cookies=cookies) 

不明白为什么虽然:(

BAD REQUEST 400表示服务器无法理解或处理您的请求(您通过AJAX发送的数据)。

由于您在AJAX中使用GET方法,我将尝试使用查询字符串的传统URL:

 var request = 'part_number=1234'; $.get('http://your.website/your_server_file?'+request, function(data){ // handle the server response (data) here ... });