2015-12-30 94 views
0

我正在嘗試向我在線網站scraper的CloudScrape處提供API請求,documentation顯示了以下示例。如何在Python中進行API請求

POST/API /運行/ {的runid} /執行/輸入/等待HTTP/1.1

X-CloudScrape接入:ga09usdm8osdf8n9sodf

X-CloudScrape賬戶:87750c5f-7423-4438 -b3f1-7b8b86990621

接受:應用/ JSON

接受編碼:gzip

內容-T YPE:應用程序/ JSON

主持人:app.cloudscrape.com

的User-Agent:YourApp/1.0

{ 
    "my_input_field": "My input value", 
    "my_other_input_field": 234 
} 

我想張貼下列參數;

體,runid爲

到目前爲止,我已經嘗試

import requests 
import json 

client = requests.session() 

runID = '86df246f-8f77-47b9-9655-be61e3851839' 
inputQuery = {"query": "1080p category:movies user:z0n321 imdb:3659388"} 
data = {'body':inputQuery, 'runId':'86df246f-8f77-47b9-9655-be61e3851839'} 
headers = {'X-CloudScrape-Access':'a41c493c2a31d068f1a06333311e52f7', 'X-CloudScrape-Account':'87750c5f-7423-4438-b3f1-7b8b86990621', 'Accept':'application/json', 'Content-Type':'application/json'} 

response = client.post('https://app.cloudscrape.com/api/runs/{%s}/execute/inputs/wait' % runID, data=json.dumps(data), headers=headers) 

results = json.loads(response.content) 
print results 

我得到這樣的迴應{u'code': 404, u'error': True}

我刮板運行正常,當我通過他們的網站手動運行它。難道我做錯了什麼?

+1

你得到一個404試試這個:''https://app.cloudscrape.com/api/runs/ {} /execute/inputs/wait'.format(runid爲)' – Zizouz212

回答

2

您不需要插值參數周圍的大括號。

...api/runs/%s/execute... 
+0

哎呀,傻我。現在我得到了'{u'headers':[u'query',u'title',u'link',u'url',u'error'],'伸出':[[沒有,沒有,沒有,沒有,沒有,沒有找到輸入字段的值:query']]}' – Michael

+1

好吧,我不知道任何關於該api的信息,並且無需註冊帳戶就無法訪問他們的文檔,看起來你正在傳遞參數。您引用的文檔片段沒有提及正文,並且您已經在URL中傳遞了runid。也許嘗試直接傳遞inputQuery作爲數據? –

+0

我認爲我需要在將'inputQuery = json.dumps(inputQuery)'傳遞給''body''之前完成。我會弄清楚,謝謝你的幫助。 – Michael

3

您的格式不正確。這樣做:

'https://app.cloudscrape.com/api/runs/{}/execute/inputs/wait'.format(runID) 
相關問題