自动登录果壳网实验报告 爬虫模拟登陆果壳网
下面是好好范文网小编收集整理的自动登录果壳网实验报告 爬虫模拟登陆果壳网,仅供参考,欢迎大家阅读!
-
–很多网站需要登录之后爬虫才能获取到有用的信息,一般我们都直接在浏览器复制cookies给爬虫。有些网页可以直接使用爬虫模拟登陆,验证码可以使用图像识别(不过我还没学,就先使用人工了),这样可以达到批量获取cookies。我看到了一个特别简单,适合刚开始练手的网站果壳网登陆。
–要想模拟登陆,就需要知道网站在我们登陆的时候做了些什么,照常打开谷歌的F12,随便输入账号密码和验证码,然后看一下all里面的post请求,post的url是果壳网的登陆页面,data参数有csrf_token, username, password, captcha, captcha_rand, permanent。
–接着重复填写几次用户名密码,可以看出username、password、captcha分别是用户名、密码和验证码(其实看名称也知道,但小白还是要验证一遍,万一它用名称迷惑我呢)。captcha_rand应该是这个验证码图片的标识,而csrf_token格式是1541126643.92##bfa04ba124f5bf9bada609e67050ee9be12db312。
–看得出前面的数字是当前时间,而后面的大概是哈希值,md5 的哈希值有16位和32位,这却是40位,应该不是md5,或者不是单纯的md5。我将当前时间、用户名、密码分别做md5计算,发现并没有什么重复的部分,应该不是这几个值的md5加密。可能是服务器随机分配的一些值。
–这怎么办呢?当然要找百度了,百度一番csrf_token只是得到这个只是防止CSRF攻击的一种方法。确实是服务器生成的随机值。继续搜索模拟登陆的随机参数怎么得到,有两种可能:服务器直接返回,服务器返回js动态拼接。
–将登陆页面的源代码通过requests保存下来(为什么不 Ctrl+s 直接保存网页呢?因为直接保存网页的内容是已经动态生成的页面,有这个参数很正常),搜索一下csrf_token,还真有,而且在后面的内容也找到了captcha_rand,这就简单了。
关于session的使用可以看requests官方文档
下面是源代码: