python - Akamai 传感器数据生成器,用于发布请求时的有效 _abck cookie (Python)

标签 python cookies python-requests websecurity

所以我试图在网站上进行自动结账,但我一直被阻止,因为我无法获得有效的 _abck cookie。 我在一些网站上看到人们付费,所以编码员给他们传感器数据生成器,我买不起,所以我来这里寻找一些关于如何编写这个生成器的建议。

首先,我必须创建一个以传感器数据作为有效负载的发布请求,该请求将设置有效的 _abck cookie。 然后我必须使用 _abck cookie 创建另一个发布请求以及其他一些请求来调用结帐并获取 paypal url

网站:www.zalando.com

API:https://opensource.zalando.com/restful-api-guidelines/

import pickle, requests

from bs4 import BeautifulSoup


s = requests.session()

headers = {
    'Authority': 'www.zalando.es',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    "Accept-Encoding": "gzip, deflate, br",
    'Accept-Language': 'es-ES,es;q=0.9',
    'Referer': 'https://www.zalando.es/checkout/address',
    "Cache-Control": "no-cache",
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
}

s.headers.update(headers)

#loading previous zalando session saved cookies so I can access my cart and checkout.
cookies = pickle.load(open(f"{COOKIES_PATH}", "rb"))
for cookie in cookies:
    cookie_obj = requests.cookies.create_cookie(
        domain=cookie["domain"], name=cookie["name"], value=cookie["value"])
    s.cookies.set_cookie(cookie_obj)

res = s.get("https://www.zalando.es/checkout/confirm")

soup = BeautifulSoup(res.text, "lxml")

data = soup.find_all("div")

for attrs in data:
    section = attrs.get("data-props")
    if section:
        final = str(section).split(",")
        for info in final:
            if "eTag" in info:
                eTag = str(info.split(":")[1])[3:-3]
            if "checkoutId" in info:
                checkoutID = "".join(str(info.split(":")[1].strip('"')).split("""))

s.headers["Accept"] = "*/*"
s.headers["Accept-Encoding"] = "gzip, deflate, br"
s.headers["Content-Type"] = "text/plain;charset=UTF-8"
s.headers["Referer"] = "https://www.zalando.es/checkout/confirm"
s.headers["Origin"] = "https://www.zalando.es"

cookies, cookie = ["bm_sz", "frsx", "zac", "zsr", "zsi", "zsa", "mpulseinject",
                    "Zalando-Client-Id", "fvgs_ml", "ak_bmsc", "_abck", "bm_sv"], ""

for name, value in s.cookies.get_dict().items():
    if name in cookies:
        cookie += f"{name}={value}; "

s.headers["Cookie"] = cookie[:-2]

payload = {"sensor_data": "..." }

akamai = s.post("https://www.zalando.es/QP-swp7Px0/SRyH/rEGktd/9maOrLch/WlluOA/KS9r/OH59U0YB", json=payload)

csrf = s.cookies.get_dict()["frsx"]
s.headers["X-Xsrf-Token"] = csrf
s.headers["Accept"] = "application/json"
s.headers["Content-Type"] = "application/json"
del s.headers["upgrade-insecure-requests"]

cookies, cookie = ["bm_sz", "frsx", "zac", "_gid", "_ga", "zsr", "zsi", "zsa", "mpulseinject",
                    "Zalando-Client-Id", "fvgs_ml" "csrf-token", "ak_bmsc", "_abck", "bm_sv"], ""

for name, value in s.cookies.get_dict().items():
    if name in cookies:
        cookie += f"{name}={value}; "

s.headers["Cookie"] = cookie[:-2]


payload = {"checkoutId": checkoutID,
            "eTag": eTag }

res = s.post(
    "https://www.zalando.es/api/checkout/buy-now", json=payload)

print(res.content)

最佳答案

不,如果是 abck cookie,那就相当复杂了。通过简单的 get 你不会得到有效的 abck cookie。当传感器数据读取鼠标移动等时。每个新请求 akamai 脚本都会检查并比较传感器数据,因此如果您对此 cookie 进行硬编码,您将能够发送更多请求。 我还没有测试过,但你可以试试这个:https://github.com/zedd3v/abck

关于python - Akamai 传感器数据生成器,用于发布请求时的有效 _abck cookie (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69562016/

相关文章:

Python的列表理解和其他更好的实践

python - Numpy:从子矩阵广播

javascript - Backbone.js、Rest API 和匿名 session

c# - 什么是 session Cookie?

python - 如何指定python请求http put body?

python - 解析请求响应时应该使用 .text 还是 .content?

Python 使用 Pandas/Urllib 下载文件

python - 为什么我无法仅使用括号访问 Pandas 中 Dataframe 中的单个元素?

python - 我想知道为什么这行得通

jquery - 使用 cookie 删除和添加类到列表项