2017-09-28 23 views
0

フォーム要求を送信しようとしましたが、できません。リクエストライブラリを使って送信しようとしました。私は送信されるパラメータを把握することができません。 テキストエリアと送信ボタンがあります。ここ は、ウェブサイトのソースです:Pythonリクエストを使用してフォームを送信できません

<form class="form-horizontal"> 
<input id="RId" type="hidden" value="Some_XYZ_Code" /> 
    <div class="row"> 
    <div class="col-md-12"> 
    <div id="TextContainer" class="textarea-container"> 
    <textarea id="Text" rows="5" maxlength="700" class="abc"></textarea> 
    </div> 
    </div> 
    <div class="col-md-12"> 
    <button id="Send" class="btn btn-primary-outline" type="button" onclick="SendMsg()" data-loading-text="Loading..."><span class="icon icon-pencil"></span> Send</button> 
    </div> 
    </div> 
    </form> 

私のコードは次のようになります:Sarahahへ

import requests 
r = requests.post("https://akshitdhar.sarahah.com/", 
       data={'id':'RId','value':'Some_XYZ_Code','Text':'abc'}) 
print(r.status_code) 
+0

のどれも、Webサイトのソースすることはできませんフィールドには 'name'属性があります。フォームが直接提出されていると思いますか? –

+0

フォームを送信していない場合は、代わりにJS関数SendMsg()を呼び出しています。 – GSazheniuk

答えて

0

投稿メッセージ:

def makePost2User(userId, msg): 
    r = requests.get("https://%s.sarahah.com/" % userId); 

    if (r.status_code != 200): 
     print("Error making GET Request. Server returned Code: %s" % r.status_code) 
     pass 

    cookie = r.headers['Set-Cookie'].split(";")[0] 
    print("Cookie: %s" % cookie) 
    headers = { 'Cookie': cookie } 

    tstr = r.content.decode().split("<input id=\"RecipientId\" type=\"hidden\" value=\"")[1] 
    uId = tstr.split("\"")[0] 
    print("UserID: %s" % uId) 

    tstr = r.content.decode().split("name=\"__RequestVerificationToken\" type=\"hidden\" value=\"")[1] 
    rToken = tstr.split("\"")[0] 
    print("Token: %s" % rToken) 

    url = "https://%s.sarahah.com/Messages/SendMessage" % userId 
    data = { "__RequestVerificationToken":rToken, "userId": uId, "text": msg } 

    p = requests.post(url, headers=headers, data=data) 
    print("Posted. Server returned Code: %s" % p.status_code) 
    pass 
関連する問題