2016-10-30 11 views
0

私はpython requestsライブラリを使用して投稿依頼をしようとしています。Python post request failed 3

:path:/leagueOverview/football/england/premier-league?requestId=5&wsTrack=441d62c066a64465a2f7b03717d2d694&method=post 
:scheme:https 
accept:application/json 
accept-encoding:gzip, deflate, br 
accept-language:da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4 
content-length:6019 
content-type:application/x-www-form-urlencoded 

user-agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 
Query String Parameters 
view source 
view URL encoded 
requestId:5 
wsTrack:441d62c066a64465a2f7b03717d2d694 
method:post 
Form Data 
view source 
view URL encoded 
bettingTypeIds:7 
bettingTypeIds:8 
bettingTypeIds:9 

とこれは私にエラーコード500を与えている。この

headerbb = {'accept':'application/json' ,\ 
'accept-encoding':'gzip, deflate, br',\ 
'accept-language':'da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4',\ 

'content-length':'6019',\ 
'content-type':'application/x-www-form-urlencoded',\ 
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) \ 
      Chrome/54.0.2840.71 Safari/537.36'} 

session = requests.Session() 
url1 = 'https://bbfeapi.betbrain.com/leagueOverview/football/england /premier-league?requestId=5' 
url2 = url1+'&wsTrack=' + wsTrack+'&method=post' 
formdata = {'bettingTypeIds': ['7','8','9'] } 

session.post(url2, headers=headerbb,data=formdata) 

のようなエラーlookeと私のコード:私は複製しようとしている投稿は、chrome開発ツールで、次のようになります。私の推測では、formdataで何か間違っているのですが、どうすればいいですか?formdadaを正しい方法で書くにはどうすればいいですか?私はまた、ヘッダーに何か間違っている可能性があります

何か助けが大いに感謝!

答えて

0

私はあなたがやろうとしている正確にわからないんだけど、ここではクロムに記録されているHTTP-リクエストを複製するための小さなキャッチオールアプローチです:

クロームのDev-ツールで

、上の右クリック複製する要求を入力し、「Copy as cURL」をクリックし、hereに移動し、言語として「python」を選択して、curlコマンドを貼り付けます。 これは、準備が整うはずのPython(-requests)コードを出力します。セッションクッキーが必要な場合は、request-sessionを使用して(例のように)少し前にコードを変更し、POSTを実行する前にいくつかのページをリクエストする必要があります。

これで解決できない場合は、質問を編集してchromeからコピーしたcURLを追加してください。

編集:

このコードを試してみて、それはあなたのために働くかどうかを確認してください。

import requests, json 
from pprint import pprint 

headers = { 
    'pragma': 'no-cache', 
    'origin': 'https://www.betbrain.com', 
    'accept-encoding': 'gzip, deflate, br', 
    'accept-language': 'en-GB,en;q=0.8,en-US;q=0.6,de;q=0.4', 
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36', 
    'content-type': 'application/x-www-form-urlencoded', 
    'accept': 'application/json', 
    'cache-control': 'no-cache', 
    'authority': 'bbfeapi.betbrain.com', 
    'cookie': 'visid_incap_878444=0IWvPeyoSiOyl15h8NeUkmcBFlgAAAAAQUIPAAAAAACClzFL2y3zI3kGh0UF9iBb; incap_ses_289_878444=CLx3JSblzwMcgYYoVbwCBGcBFlgAAAAA9gzkJrI33q8daHr8iP7XrQ==; JSESSIONID=AF30CFE0653AECB1A20CFACD686E8A4F; incap_ses_184_878444=FRwnZDjTa0wAxRtNVOWNAhQYGVgAAAAAOjOVH1A2ipnR7gEwfzvGsg==; oddsFormat=EU; bookieNameAndLogo=NAME_LOGO; showOddsWithCommission=false; gmtTimezoneOffset=0', 
    'referer': 'https://www.betbrain.com/football/england/premier-league/', 
} 

data = { 
    'bettingTypeIds': '7,8,9,11,12,13,24,25,26,27,28,29,30,32,33,34,35,37,39,45,47,48,49,50,51,52,53,57,60,62,63,64,65,66,67,68,69,70,71,75,76,77,78,79,80,81,82,83,84,85,87,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358', 
    'domain': 'www.betbrain.com' 
} 
parameters = { 
    "requestId": 1, 
    "wsTrack": "eabad591a6c44ecf94a81287ba246920", 
    "method": "post" 
} 
response = requests.post('https://bbfeapi.betbrain.com/leagueOverview/football/england/premier-league?', params=parameters, headers=headers, data=data) 
print response.status_code 
pprint(json.loads(response.text)) 
+0

私は幾分助けてくれました:-)私はcurl:http://curl.trillworks.com/からpythonコードを入手できるウェブサイトを見つけました。 –

+0

Ty Moorztech。 :-)私はcurlからpythonコードを入手できるWebサイトを見つけました:http://curl.trillworks.com/。私はそこにカールを貼り付けると、私は動作するスクリプトを取得します。しかし、私はまだ問題があります。私はhttps://bbfeapi.betbrain.com/leagueOverview/football/england/premier-league?requestId=5&wsTrack=76f779cc70684bb392d313912a2c0503&method=postを掻き回そうとしています。ここwstrackはhttps://bbfeapi.betbrain.com/httphs?method=getからの応答で得られます。唯一使用されているクッキーはJSESSIONIDで、そこにも設定されています。私はクッキーを保持するためにセッションを使用します。私はまだレスポンス500を得ます...何らかの理由がありますか? –

+0

@PerRavnあなたがあなたの質問にchromeからコピーしているcURL式を追加してください。また、明確にするために、あなたはhttps://www.betbrain.com/からイベント/オッズを削り取ろうとしていますか? – MoorzTech

関連する問題