Используя CookieJar в Python, чтобы войти на сайт из "Google App Engine". Что здесь здесь?

StackOverflow https://stackoverflow.com/questions/2571450

Вопрос

Я пытался найти код Python, который войдет в мой почтовый ящик на Yahoo.com из "Google App Engine" . Здесь (нажмите здесь, чтобы увидеть эту страницу) Мне дали этот код:

import urllib, urllib2, cookielib

url = "https://login.yahoo.com/config/login?"
form_data = {'login' : 'my-login-here', 'passwd' : 'my-password-here'}

jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
form_data = urllib.urlencode(form_data)
# data returned from this pages contains redirection
resp = opener.open(url, form_data)
# yahoo redirects to http://my.yahoo.com, so lets go there instead
resp = opener.open('http://mail.yahoo.com')
print resp.read()

Автор этого скрипта посмотрел в HTML-скрипт Форма входа в Yahooи придумал этот скрипт.

Этот вход в систему содержит два поля, один для пользователей Yahoo! ID и еще один для пароля пользователей. Вот как HTML-код этой страницы для обоих этих полей выглядит:

Идентификатор пользователя:

<input type="text" maxlength="96" class="yreg_ipt" size="17" value="" id="username" name="login">

Поле пароля:

<input type="password" maxlength="64" class="yreg_ipt" size="17" value="" id="passwd" name="passwd">

Однако, когда я загрузил этот код в двигатель Google App, я обнаружил, что эта форма журнала продолжает возвращаться ко мне, что, я предполагаю, что означает, что процесс входа в систему не добился успеха. Почему это так?

Это было полезно?

Решение

Вы отправляете хеш MD5 и не просто пароль. Также вы должны были бы играть вместе со всеми видами защиты CSRF и т. Д., Что они реализуют. Смотреть:

            <input type="hidden" name=".tries" value="1"> 
            <input type="hidden" name=".src" value="ym"> 
            <input type="hidden" name=".md5" value=""> 
            <input type="hidden" name=".hash" value=""> 
            <input type="hidden" name=".js" value=""> 
            <input type="hidden" name=".last" value=""> 
            <input type="hidden" name="promo" value=""> 
            <input type="hidden" name=".intl" value="us"> 
            <input type="hidden" name=".bypass" value=""> 
            <input type="hidden" name=".partner" value=""> 
            <input type="hidden" name=".u" value="bd5tdpd5rf2pg"> 
            <input type="hidden" name=".v" value="0"> 
            <input type="hidden" name=".challenge" value="5qUiIPGVFzRZ2BHhvtdGXoehfiOj"> 
            <input type="hidden" name=".yplus" value=""> 
            <input type="hidden" name=".emailCode" value=""> 
            <input type="hidden" name="pkg" value=""> 
            <input type="hidden" name="stepid" value=""> 
            <input type="hidden" name=".ev" value=""> 
            <input type="hidden" name="hasMsgr" value="0"> 
            <input type="hidden" name=".chkP" value="Y"> 
            <input type="hidden" name=".done" value="http://mail.yahoo.com"> 
            <input type="hidden" name=".pd" value="ym_ver=0&c=&ivt=&sg="> 

Запустите Wireshark и играйте с ним. Удачи :)

Однако, если вы собираетесь использовать его с приложенным двигателем, удерживайте, что используя Google IP, почти наверняка приведет к вызов с CAPTCHA. Также Yahoo может заблокировать ваш User-Agent это постоянно устанавливается в Google.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top