网络爬虫——由模拟登录扯开去(1)

本文详细介绍了模拟登录的步骤,包括获取目标地址、使用FormData、头信息和Cookie处理,以及针对不同加密方式如MD5和RSA的应对策略。还讨论了验证码识别的各种方法,从基本的人工识别到高级的OCR技术和机器学习应用。
摘要由CSDN通过智能技术生成

一般步骤


模拟登录的一般步骤:真实的目标地址,FormData,头信息,Cookie,重定向。

F12打开开发者工具 ——> Network ——> 勾选Preserve log ——> 输入账号、密码等,点击登录 ——> 分析请求

这里以苏宁易购的登录页面为例(仅作为例子,实际并没有拿此站点开刀)说明问题:

  • 获取、分析请求

2017-12-25-Request

  • 请求头信息

2017-12-25-Header

Note:

1. 并非所有的网站登录都有FormData,比如有的_Java Web_站点就是通过action的方式提交form 的表单数据,用户信息是以input的name作为属性名的键值对,提交到服务器。

2. 如果发现无法获取到有用的信息,可通过其他软件(eg: fiddler, 也可用于移动端抓包)对网络请求进行抓包,然后分析。

分类

1. 账号,密码(明文)POST

最简单的方式,直接提交即可;

2. 账号,密码(密文)POST

根据不同的场景分别处理:

  • 需求:使用单个账号,登录一个目标网站,之后做各种处理;

这时,直接用FormData中加密后的密码提交;

  • 需求:使用大量账号,登录一个目标网站;

这就要确定目标网站前端所采用的密码加密算法,常见的有MD5RSA等;一般可以在前端JavaScript脚本中找到相关的加密方式;

Note:

  1. 有时候会辅以token+密码的形式,而不仅仅是原密码进行加密(见第3种情况);

  2. 如果所有账号的密码都一样,此时也用不着确定加密算法了,可按前一种需求处理;

3. 账号,token+密码(密文)POST

首先要想办法获取token,token又有动、静之分:

  • 动态token:每次打开登录页面后,都会返回一个不同的token,这需要分析页面信息,做相应的处理;

  • 静态token:这种一般是在服务端定义好的一个固定密钥;当时遇到的是移动端的app,通过反编译安卓客户端软件.apk得到源码,从中找到的(忘记在请求中是否可以抓取到)……

4. 账号,上述任一情况,图片验证码 POST

这里同第2种情况,对于图片验证码,可根据需求分别处理:eg:

  • 需求:使用单个账号,登录一个目标网站,之后做各种处理;

Solution

这时,登录一次就可以,所以可将目标验证码下载下来,显示图片,人工识别即可;

  • 需求:使用大量账号,登录一个目标网站,之后均做同样的操作与处理(具体场景,可自由发挥想象力);

Solution

由于需要重复进行登录动作,最简单的方法是扔给第三方平台(嗯,可能是人肉识别),这类平台一般需要充值、进行付费识别(正确率还可以,错误的可以报回给平台);

高级一点的可利用OCR技术,再辅以图像处理技术,一般步骤是先处理图片,灰度化,去除背景色及噪点,提高对比度等,这有赖于图像处理算法能力,也有不少的库可以用,比如ImageMagick,然后通过OCR识别,推荐tesseract-ocr;对于容易识别的验证码可粗暴一点,直接由OCR识别,错了换一张就是了;

比较专业的是通过机器学习、神经网络等进行训练,然后喂给它新的图片,完成识别;这种方法对技术的要求挺高(一般都是调用现成的算法包,那也挺复杂的。。),虽然我的硕士研究方向是脑电信号处理,也用到了不少机器学习算法,可是最终还是没选择这条路,各有各的一片天地吧。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
。**

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值