登录日本雅虎邮箱网站,我研究出来的结果是先用get去首页获取到cookie,然后使用cookie再用get到登陆页面获取cookie和一个类似token的数据(albatross),然后使用把数据post到后台,然后post之后就得到了一个输入验证码的页面,按道理应该是直接登陆成功的,不知道为何出现了验证码,求大神帮忙看看,附源码:[C#] 纯文本查看 复制代码 string url = "http://login.yahoo.co.jp/config/login?.src=&.v=3&t_cushion=&sr_required=&sr_optional=&.done=http%3A//www.yahoo.co.jp/&.display=";
HttpHelper helper = new HttpHelper();
HttpItem httpItem = new HttpItem()
{
URL = "http://www.yahoo.co.jp",
};
HttpResult httpResult = helper.GetHtml(httpItem);
string cookie = httpResult.Cookie;
httpItem = new HttpItem()
{
URL = url,
UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
Accept = "text/html, application/xhtml+xml, */*",
Referer = url,
ContentType = "application/x-www-form-urlencoded",
Allowautoredirect = true,
Cookie = cookie
};
httpResult = helper.GetHtml(httpItem);
string temp = "<input type=\"hidden\" name=\".albatross\" value=\"";
int startIndex = httpResult.Html.IndexOf(temp) + temp.Length;
int endIndex = httpResult.Html.IndexOf("\"", startIndex);
string albatross = httpResult.Html.Substring(startIndex, endIndex - startIndex);
string postData = @".ct=&.albatross=" + albatross.Replace("=", "%3D") + "&.tries=1&.src=&.md5=&.hash=&.js=&.last=&promo=&.intl=&.bypass=&.partner=&.u=&.v=3&.challenge=&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=0&.chkP=Y&.done=http%3A%2F%2Fwww.yahoo.co.jp%2F&.pd=&.protoctl=&.requiredPsCheckBox=&.suppreg_skip=&ckey=&t_cushion=&sr_required=&sr_optional=&.display=&at=&login=" + userName + "&passwd=" + passWord + "&.reg1=1440&.reg2=900&.reg3=-480&.reg4=Shockwave+Flash%2Cundefined%2Cswf%2Capplication%2Fx-shockwave-flash%2CShockwave+Flash%2Cundefined%2Cspl%2Capplication%2Ffuturesplash&.reg5=Shockwave+Flash+15.0+r0%2CFlash32_15_0_0_167.ocx%2CShockwave+Flash&.reg6=&.reg7=&.reg8=&.reg9=46.356";
httpItem = new HttpItem()
{
URL = "https://login.yahoo.co.jp/config/login?",
Referer = url,
Accept = "text/html, application/xhtml+xml, */*",
UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
Cookie = cookie,
ContentType = "application/x-www-form-urlencoded",
Method = "Post",
Postdata = postData,
Allowautoredirect = true,
Encoding = Encoding.UTF8
};
httpResult = helper.GetHtml(httpItem);
string result = httpResult.Html;
|