我try 了以下几点:

这是我的源代码:

import datetime
import hashlib
import json
import requests
from pprint import pprint

def generate_headers(url):
    salt = "w4ivc1ATTGta6njAZzMbkL3kJwxMfEAKDa3MNr"
    current_time = datetime.datetime.now(tz=datetime.timezone.utc)
    client_date = (current_time
        .isoformat(timespec="milliseconds")
        .replace("+00:00", "Z")
    )
    client_traceid = hashlib.md5(
        (client_date + url + salt).encode("utf-8")
    )
    security = hashlib.md5(
        current_time.strftime("%Y%m%d%H%M").encode("utf-8")
    )

    return {
        "Client-Date": client_date,
        "X-Client-TraceId": client_traceid.hexdigest(),
        "X-Security": security.hexdigest()
    }

payload = {"indices"  : ["DE0007203275"],
           "lang"     : "de",
           "offset"   : 0,
           "limit"    : 50,
           "sorting"  : "TURNOVER",
           "sortOrder": "DESC"}

urlString = "https://api.boerse-frankfurt.de/v1/search/equity_search?indices=['DE0007203275']&lang=de&offset=0&limit=50&sorting=TURNOVER&sortOrder=DESC"

result = generate_headers(urlString)
print(result)

headers = {"Host"             : "api.boerse-frankfurt.de",
           "Referer"          : "https://www.boerse-frankfurt.de/",
           "Content-Type"     : "application/json; charset=utf-8",
           "Client-Date"      : result["Client-Date"],     
           "X-Client-TraceId" : result["X-Client-TraceId"],  
           "X-Security"       : result["X-Security"]
           }

response = requests.post(url,
                         headers=headers,
                         json=payload)

pprint(json.loads(response.content))

欢迎任何建议.谢谢你!

推荐答案

试着:

import hashlib
from datetime import datetime

import requests


def get_trace_id():
    timeutc = datetime.utcnow()
    timestr = timeutc.isoformat(timespec="milliseconds") + "Z"

    traceidbase = timestr + url + "w4ivc1ATTGta6njAZzMbkL3kJwxMfEAKDa3MNr"
    encoded = traceidbase.encode()
    traceid = hashlib.md5(encoded).hexdigest()

    return timestr, traceid


url = "https://api.boerse-frankfurt.de/v1/search/equity_search"

payload = {
    "indices": ["DE0008469008"],
    "lang": "de",
    "limit": 25,
    "offset": 0,
    "sorting": "TURNOVER",
    "sortOrder": "DESC",
}

client_date, trace_id = get_trace_id()

headers = {
    "X-Client-TraceId": trace_id,
    "Client-Date": client_date,
}

data = requests.post(url, headers=headers, json=payload).json()

print(json.dumps(data, indent=4))

打印:

{
    "recordsTotal": 40,
    "data": [
        {
            "turnover": 353383054.2,
            "esgRiskScore": null,
            "industryAverage": null,
            "changeToPrevDay": 0.1915708812,
            "weeks52High": 571.8,
            "weeks52Low": 226.5,
            "performance3Month": 71.41920682,
            "performance1Year": 101.69687621,
            "performance3Year": 496.21523028,
            "tradingUnitsToday": null,
            "marketCapitalisation": 22781880000.0,
            "name": {
                "originalValue": "RHEINMETALL AG",
                "translations": {
                    "others": "Rheinmetall AG"
                }
            },
            "wkn": "703000",
            "isin": "DE0007030009",
            "slug": "rheinmetall-ag",
            "overview": {
                "exchange": "XETR",
                "lastPrice": 523.0,
                "changeToPrevDay": 0.1915708812,
                "dateTimeLastPrice": "2024-04-10T17:37:03+02:00",
                "turnover": 353383054.2,
                "tradingUnitsToday": null
            },
            "performance": {
                "weeks52High": 571.8,
                "weeks52Low": 226.5,
                "performance3Month": 71.41920682,
                "performance6Month": 108.78243513,
                "performance1Year": 101.69687621,
                "performance3Year": 496.21523028
            },
            "keyData": {
                "priceEarningsRatio": 23.2873,
                "dividendPerShare": 5.7,
                "dividendPerShareExtra": null,
                "dividendRatio": 1.092,
                "earningsPerShareGross": 17.76,
                "earningsPerShareBasic": 12.32,
                "priceBookRatio": 3.7567,
                "marketCapitalisation": 22781880000.0
            },
            "sustainability": {
                "esgRiskScore": null,
                "industryAverage": null
            }
        },

...

Python相关问答推荐

线性模型PanelOLS和statmodels OLS之间的区别

Odoo 14 hr. emergency.public内的二进制字段

如何在箱形图中添加绘制线的传奇?

Gekko:Spring-Mass系统的参数识别

运行总计基于多列pandas的分组和总和

如何在Windows上用Python提取名称中带有逗号的文件?

如果值发生变化,则列上的极性累积和

根据列值添加时区

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

如何在FastAPI中为我上传的json文件提供索引ID?

lityter不让我输入左边的方括号,'

如何删除重复的文字翻拍?

用两个字符串构建回文

将链中的矩阵乘法应用于多组值

裁剪数字.nd数组引发-ValueError:无法将空图像写入JPEG

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

Regex用于匹配Python中逗号分隔的AWS区域

解析CSV文件以将详细信息添加到XML文件

为什么在更新Pandas 2.x中的列时,数据类型不会更改,而在Pandas 1.x中会更改?