POST模拟百度登录和自动发帖

这里用HttpClient发包模拟百度登录和发帖,验证码部分采用机器下载人工识别。

登陆百度的原理:
1.

访问https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,生成一个cookie。关键值为BAIDUID
2.

再次访问https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=false,获取Token并保存cookie 关键获得token

3.

https://passport.baidu.com/v2/api/?logincheck&callback=bdPass.api.login._needCodestringCheckCallback&tpl=mn&charset=utf-8&index=0&username=test@baidu.com&time=1345429566039

访问logincheck传入自己的用户名,确认是否需要验证码,如需要获得codestring

4.

根据codestring 结合

https://passport.baidu.com/cgi-bin/genimage?获得验证码图片

5.

构造Post参数(主要是用户名、密码和Token,codestring和verifycode),访问http://passport.baidu.com/v2/api/?login登录上百度

自动发帖原理:

1.

http://tieba.baidu.com/f/user/json_vcode?lm=1177&rs10=2&rs1=1&t=0.45910384411207794 获得vcodestr

lm为贴吧编号

2.

http://tieba.baidu.com/cgi-bin/genimg?获得验证码图片

3.

结合验证码发送表单到(各个参数在页面源码中都可以获得)

http://tieba.baidu.com/f/commit/thread/add

支持图片上传

参考链接http://code.google.com/p/robotarm/source/browse/trunk/ssl/src/baidu/Baidu.java?spec=svn501&r=501  感谢google!!!!

(转自:http://blog.csdn.net/chengsimin/article/details/9155729)

原文地址:https://www.cnblogs.com/gisblogs/p/4059350.html