2014-09-13 3 views
0

Я использую модуль запросов с python 3.3 и пытаюсь отправить данные. Это данные, которые я пытаюсь опубликовать. Я уже разбирал значения из html:модуль запросов - попытка отправить

<form action="/checkoutnow/2" autocomplete="off" class="proceed" id="loginForm" method="post" name="login_form" novalidate="novalidate"> 
    <input id="loginForm" name="execution" type="hidden" value="e21s1"> <input name="token" type="hidden" value="EC-2MJ027776Y1687721"> <input id="incontext" name="incontext" type="hidden" value="0"> <input id="eventID" name="_eventId_submit" type="hidden"> 

    <div class="" id="loginFields"> 
    <div class="inputField emailField confidential"> 
     <label for="email">Email</label> <input autocomplete="off" data-validate-email="true" id="email" name="email" type="email" value=""> 

     <div class="tip tipHint"> 
     <div class="tipArrow tipArrowFront tipHintArrowFront"></div> 

     <div class="tipArrow tipArrowBack tipHintArrowBack"></div> 

     <ul class="tipText tipHintText"> 
      <li>Did you mean <a class="emailLink" href=""></a>? 
      </li> 
     </ul> 
     </div> 
    </div> 

    <div class="inputField passwordField confidential"> 
     <label for="password">Password</label> <input autocomplete="off" id="password" maxlength="22" name="password" type="password" value=""> 

     <div class="toolTip tip guestTooltip"> 
     <div class="tipArrow tipArrowFront tipErrorArrowFront"></div> 

     <div class="tipArrow tipArrowBack tipErrorArrowBack"></div> 

     <div class="tipText tipErrorText"> 
      Trouble logging in? You can try again, or <a class='submit' href='/checkoutnow/2?execution=e21s1&_eventId_guest' id='guestTooltipLink'>check out as a guest</a> 
     </div> 
     </div> 
    </div> 
    </div> 

    <div class="buttons varA"> 
    <input class="btn full continue" name="_eventId_submit" type="submit" value="Log in to PayPal"> 

    <div class="forgotPassword secondary" id="forgotPasswordSection"> 
     <a href='/us/merchantpaymentweb?cmd=_account-recovery&amp;from=PayPal' id='forgotPassword' target='_blank'>Forgot your password?</a> 
    </div> 
    <hr class="sep"> 
    <a class="btn btn-secondary submit" href="/checkoutnow/2?execution=e21s1&_eventId_guest&token=EC-2MJ027776Y1687721" id="checkoutAsAGuestBtn">Pay with Debit or Credit Card</a> 
    </div> 
</form> 

И вот мой код, чтобы пройти мимо этого. Я использую сеанс кстати.

payload6 = {'loginFields': {'password': paypalpass, 'email': useremail}, 'token': token, 'execution': execution, 'incontext': incontext, '_eventId_submit': ''} 
r = session.post(urlnow, data=payload6) 

Я считаю, что моя проблема связана с «loginFields», как после публикации, значения по-прежнему пусты.

ответ

0

Ваши данные POST не должны иметь вложенных диктов. password и email должны быть ключами верхнего уровня, такими как token и execution, и не вложены под loginFields, как сейчас. (Предполагаю, что loginFields находится в вашей полезной нагрузке из-за этого <div id="loginFields">, но такие обертки не должны влиять на то, как структурированы данные POST.)

+0

А я пробовал это, прежде чем я начал использовать вложенный dict для поля входа, и пропуск/письмо не прошли. –

0

Оказывается, javascript генерирует больше переменных. Спасибо за помощь.

Смежные вопросы