POST登录百度

  • 2016-09-12
  • 0
  • 0

总览

使用HTTP登录百度,主要步骤
1.获取BAIDUID
2.获取APITOKEN
3.发送POST登录

辅助步骤
•检测验证码
•获取验证码

提示:获取验证码只有在需要验证码的情况下才是必须的。

第一步,获取BAIDUID
以GET的方式访问

http://tieba.baidu.com/dc/common/tbs

BAIDUID包含在返回的Cookie中。

第二步,获取APITOKEN
以GET的方式访问

https://passport.baidu.com/v2/api/?getapi&tpl=mn

并在Cookie中带上BAIDUID,返回内容如下

var bdPass=bdPass||{};
bdPass.api=bdPass.api||{};
bdPass.api.params=bdPass.api.params||{};
bdPass.api.params._token='7770f19655cb9c8cd0b30b0a514236d4';
bdPass.api.params._tpl='mn';

其中 bdPass.api.params._token 就是 APITOKEN。

第三步,发送POST登录
构建登录内容:

charset=utf-8&mem_pass=on&token=&tpl=mn&username=&password=&codestring=&verifycode=

•token:APITOKEN
•username:帐号
•password:密码
•codestring:验证码标识符
•verifycode:验证码

如果没有验证码,最后两个参数是可以忽略的。
以POST方式发送登录内容到

https://passport.baidu.com/v2/api/?login

并在Cookie中带上BAIDUID,返回内容如下

#此处略去#
var url = encodeURI('#此处内容略去#&codeString=&error=0');
#此处略去#

error是错误码,如果 error=0 表明登录成功。在Cookie中可以获取到BDUSS,此时登录操作全部完成。

检测验证码
以GET方式请求

https://passport.baidu.com/v2/api/?logincheck&charset=utf-8&username=你的帐号

返回的内容中codestring如果有值,表明登录时需要验证码。
在登录时,带上codestring和识别后的验证码,就可以以有验证码的方式进行登录。

获取验证码
验证码图片地址

https://passport.baidu.com/cgi-bin/genimage?验证码的codestring

评论

还没有任何评论,你来说两句吧

CC共享许可协议:BY-NC-SA 4.0 - 友情链接 - Theme by Qzhai