我一直试图找到一个Python代码,将登录到我的邮箱上yahoo.com从的‘谷歌应用程序引擎’这里(点击这里查看该网页)我得到这个代码:

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! ID,另一种是用户的密码。下面是两个领域的那些看起来像网页的HTML代码:

用户ID字段:

<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">

然而,当我上传此代码,谷歌应用程序引擎我发现,在对数形式不断回来给我,对此,我认为,这意味着测井过程没有成功。为什么会这样?

有帮助吗?

解决方案

您发送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的,并用它的发挥。好运:)

不过,如果你打算使用它瓦特/ App Engine的守在我的脑海,使用谷歌IP几乎肯定会导致W /验证码的挑战。雅虎也可能会阻止您的User-Agent正在由谷歌永久设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top