Python request.post返回<Response [406]>

问题描述

我试图从电子商务网站获取数据,但我按类别找到了其产品信息的API。我将它们放在我的python控制台中:

<iframe>

我开始的网站是https://www.tokopedia.com/p/dapur/aksesoris-dapur/alat-pemotong-serbaguna。供您参考。

解决方法

您的参数"data"是错误的。您需要传递字符串而不是dict。(不是form-data),请尝试以下代码:

import requests

payload = "[{\"operationName\":\"Ticker\",\"variables\":{\"page\":\"header\"},\"query\":\"query Ticker($page: String) {\\n  ticker {\\n    tickers(page: $page) {\\n      message\\n      __typename\\n    }\\n    __typename\\n  }\\n}\\n\"}]"

url = 'https://gql.tokopedia.com/'

with requests.Session() as s:
    print(response.status_code)
    print(response.json())

这给了我

200
[{'data': {'ticker': {'tickers': [{'message': 'Mau belanja aman? <span class="highlights">Masuk yuk!</span>','__typename': 'TickerData'}],'__typename': 'Tickers'}}}]