微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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)

不明白为什么虽然:(

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐