通过Python中的POST请求将产品添加到Supreme上的购物车-请求不起作用



我正在尝试用Python制作一个机器人程序,它可以在检测到后将产品添加到Supreme上的购物车中。我希望这是高效的,当我尝试使用HTTP发布请求来完成任务时,我会收到响应代码200(OK(,但产品没有添加到我的购物篮中。

我在Python请求模块和selenium请求模块中都尝试过这种方法。代码如下:

post_headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', 'x-requested-with': 'XMLHttpRequest', 'content-type': 'application/x-www-form-urlencoded'}
post_data = {"utf-8": "%E2%9C%93", 's': size_id, 'st': style_id, "X-CSRF-Token": csrf, "commit": "add to cart"}
url = "https://www.supremenewyork.com/shop/{productid}/add".format(productid=id)
add_to_cart = session.post(url, headers=post_headers, data=post_data)

add_to_cart的响应是HTTP代码200(OK(,但当我运行print(add_to_cart.text)时,我希望看到我添加的产品,但我只看到[](移动用户代理(或至尊主页html(桌面用户代理(,然后发现篮子里什么都没有。我还尝试过使用移动用户代理使其工作(json(,但也失败了。

当我尝试使用selenium请求时,我使用的是Google Chrome(否则,我使用自定义用户代理(。

我将感谢任何解决此问题的建议或方法,并能够通过HTTPPOST请求将产品添加到我的购物篮中。

为了查看响应中得到的内容,您还可以使用.content:

add_to_cart = session.post(url, headers=post_headers, data=post_data)
print(add_to_cart.content)

根据我在该内容中看到的返回,只有var h = {"76049":1,"cookie":"1 item--76049,26482"}可以帮助验证它是否已添加。

根据我在该网站上看到的,为了获得购物车的全部内容,您还应该执行另一个API调用,在https://www.supremenewyork.com/shop/cart上获取您的头部。

希望这会有所帮助。祝你好运

为什么您希望在对POST的响应中看到您的购物车?我知道这似乎是合乎逻辑的,但许多网站都是以奇怪和神秘的方式建立的。

您正在使用Chrome开发工具吗?如果你在"网络"选项卡中查找向购物车添加内容的请求,你会在"响应"选项卡下看到你只得到了一堆JavaScript。然而,如果你查看响应cookie,你会看到这样的内容:

购物车1+商品--62197%2C28449

它看起来像购物车中的产品ID,在Cookie中。然后,你可以通过致电在回复中寻找答案

add_to_cart.cookies["cart"]

或者,你可以做一个登录:

https://www.supremenewyork.com/shop/cart

但是您需要解析返回的HTML。。可能更容易检查Cookie。

相关内容

  • 没有找到相关文章

最新更新