使用 Python 请求库发送 jquery AJAX GET 请求 [英] Sending an jquery AJAX GET request with Python request library

查看:25
本文介绍了使用 Python 请求库发送 jquery AJAX GET 请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个需要抓取的网站,它使用 jquery AJAX 函数从服务器获取信息.我已经研究了一段时间的代码,我成功地从服务器获得了响应:

I have a website I need to scrape and it is using jquery AJAX function to get information from the server. I have been investigating the code for a while and I successfully get the response from server using:

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

请注意,这是通过 js 控制台完成的,因此我已经登录.当我尝试在 python 中执行此操作时,我当然需要先登录:

Note that this is done via js console so I am alreadt logged in. When I try to do it in python I need to login first of course:

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 )

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

The post request for login goes well but for the GET response I receive BAD REQUEST 400. I cannot figure out how to format my request. I don't know what ajax does to my request. Anyone has any ideas?

提前致谢!

推荐答案

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

Solved it! I added 'X-Requested-With': 'XMLHttpRequest' to headers and did:

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

不明白为什么:(

这篇关于使用 Python 请求库发送 jquery AJAX GET 请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆