cucr / douban-login

requests 模拟登陆豆瓣 & 有cookies与无cookies的区别 & 一些猜想

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

douban-login

requests 模拟登陆豆瓣 & 有cookies与无cookies的区别 & 一些猜想

1、我试着将cookies去掉(也就是没有建立一个session),然后登入成功。(但是没有cookies的登入成功也仅仅是登入成功,不能打开页面内的其他链接)

2、有趣的是,在cmd下,将一个cmd中获取的验证码和验证码ID放到另一个cmd中运行,依旧成功。

3、然后我想:难道只要验证码和验证码相符合就行了?而不用在意'https://www.douban.com/accounts/login'中具体是什么验证码?

4、于是再做实验,在程序中直接加上了一对相符合的验证码和验证码ID,失败了。

5、随后我又做了一系列的测试,发现服务器发出的验证码只能有效一次(比如:在cmd1中获取的验证码可以放到cmd2中用,但是再放到cmd3中就失败了)

6、最后我做一个猜测,在有客户端请求时豆瓣的服务器会发一个验证码ID给客户端,并且在服务器中保存这个ID号,在一段时间以内(比如半小时内),只要有客户端(任何客户端)post中提交了这串ID号,并且验证码相匹配的话,服务器就会给验证成功,然后将这串ID号删除。

7、这样的话就能解释我先前的所有行为了,不知道猜测的对不对,还望大神指点

8、代码有些丑陋,没有做面向对象的优化,凑合着看吧

ps:刚学python不久,对程序难免会有理解上的误差;如果有错误,还请大神们轻拍;如果有什么问题,欢迎在 issue 中提出;

About

requests 模拟登陆豆瓣 & 有cookies与无cookies的区别 & 一些猜想


Languages

Language:Python 100.0%