gpt4 book ai didi

python - POST 请求无法与站点交互

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:50 26 4
gpt4 key购买 nike

我正在尝试登录一个名为 grailed.com 的站点并关注某个产品。下面的代码是我试过的。

下面的代码使用我的凭据成功登录。但是,每当我尝试关注产品(有效负载中的 id 是产品的 id)时,代码运行时没有任何错误,但未能关注该产品。我对这种行为感到困惑。它是否与 Instagram 类似(Instagram 阻止任何以编程方式与其网站交互的尝试并强制您使用他们的 API(grailed.com 没有供公众使用 AFAIK 的 API)

我尝试了以下代码(它看起来与您在网站上关注时发送的 POST 请求一模一样)。

headers/data defined here
r = requests.Session()
v = r.post("https://www.grailed.com/api/sign_in", json=data,headers = headers)

headers = {
'authority': 'www.grailed.com',
'method': 'POST',
"path": "/api/follows",
'scheme': 'https',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
"content-type": "application/json",
"x-amplitude-id": "1547853919085",
"x-api-version": "application/grailed.api.v1",
"x-csrf-token": "9ph4VotTqyOBQzcUt8c3C5tJrFV7VlT9U5XrXdbt9/8G8I14mGllOMNGqGNYlkES/Z8OLfffIEJeRv9qydISIw==",
"origin": "https://www.grailed.com",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
payload = {
"id": "7917017"
}
b = r.post("https://www.grailed.com/api/follows",json = payload,headers = headers)

最佳答案

如果 API 未设计为公开,您很可能在关注 header 中缺少 csrf token 。您必须找到一个 CSRF token ,并将其添加到 /api/follows POST。快速查看代码,这可能很难,因为一切都在 javascript 中。

关于python - POST 请求无法与站点交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54262970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com