- 获取、分析请求
- 请求头信息
Note:
1. 并非所有的网站登录都有FormData,比如有的_Java Web_站点就是通过action的方式提交form 的表单数据,用户信息是以input的name作为属性名的键值对,提交到服务器。
2. 如果发现无法获取到有用的信息,可通过其他软件(eg: fiddler, 也可用于移动端抓包)对网络请求进行抓包,然后分析。
分类
--
1. 账号,密码(明文)POST
最简单的方式,直接提交即可;
2. 账号,密码(密文)POST
根据不同的场景分别处理:
- 需求:使用单个账号,登录一个目标网站,之后做各种处理;
这时,直接用FormData中加密后的密码提交;
- 需求:使用大量账号,登录一个目标网站;
这就要确定目标网站前端所采用的密码加密算法,常见的有MD5,RSA等;一般可以在前端JavaScript脚本中找到相关的加密方式;
Note:
-
有时候会辅以
token+密码的形式,而不仅仅是原密码进行加密(见第3种情况); -
如果所有账号的密码都一样,此时也用不着确定加密算法了,可按前一种需求处理;
3. 账号,token+密码(密文)POST
首先要想办法获取token,token又有动、静之分:
-
动态token:每次打开登录页面后,都会返回一个不同的token,这需要分析页面信息,做相应的处理;
-
静态token:这种一般是在服务端定义好的一个固定密钥;当时遇到的是移动端的app,通过反编译安卓客户端软件.apk得到源码,从中找到的(忘记在请求中是否可以抓取到)……
4. 账号,上述任一情况,图片验证码 POST
这里同第2种情况,对于图片验证码,可根据需求分别处理:eg:
- 需求:使用单个账号,登录一个目标网站,之后做各种处理;
Solution:
这时,登录一次就可以,所以可将目标验证码下载下来,显示图片,人工识别即可;
- 需求:使用大量账号,登录一个目标网站,之后均做同样的操作与处理(具体场景,可自由发挥想象力);
Solution:
由于需要重复进行登录动作,最简单的方法是扔给第三方平台(嗯,可能是人肉识别),这类平台一般需要充值、进行付费识别(正确率还可以,错误的可以报回给平台);
高级一点的可利用
OCR技术,再辅以图像处理技术,一般步骤是先处理图片,灰度化,去除背景色及噪点,提高对比度等,这有赖于图像处理算法能力,也有不少的库可以用,比如ImageMagick,然后通过OCR识别,推荐tesseract-ocr;对于容易识别的验证码可粗暴一点,直接由OCR识别,错了换一张就是了;
比较专业的是通过机器学习、神经网络等进行训练,然后喂给它新的图片,完成识别;这种方法对技术的要求挺高(一般都是调用现成的算法包,那也挺复杂的。。),虽然我的硕士研究方向是脑电信号处理,也用到了不少机器学习算法,可是最终还是没选择这条路,各有各的一片天地吧。
头信息
这里主要提一下涉及到异步请求时,'X-Requested-With':'XMLHttpRequest'这个头信息必须要添加上,否则无法返回正常的结果;
页面中有时是以异步的方式发出请求,而有时请求又是同步的,所以需要动态添加、删除这个请求头信息。
Cookie
用户名、密码提交到服务器后,如果登录成功,那么服务器一般会返回Cookie,可从响应头信息的set-cookie获取到,在登录的后续操作中,都要携带这一Cookie发送请求;
对于有验证码的站点,需要注意的是,第一步获取到验证码后,有个与验证码附在一起的Cookie,所以,此时整个登录过程,会涉及到两个Cookie:验证码Cookie与登录后的Cookie,简要描述为:
1. 获取验证码时,随验证码返回Cookie,记作Cookie1;
2. 向服务器发送登录请求时,表单数据携带Cookie1, POST;
3. 登录成功,返回Cookie,记作Cookie2;
4. 正常情况下,后续操作的每次请求附带Cookie2即可;
重定向
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。