POST登录百度

总览

使用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

文章来源:http://yueqiumao.com/p/9.html

阅读 6.6k

推荐阅读
yueqiumao
用户专栏

0 人关注
6 篇文章
专栏主页