直接用Charles抓包的信息, python 模拟登录网站的一点问题

现在的网站越来越动态化,越来越像一个会话系统,不建议通过模拟http消息的方式抓取网页,用这种方式能抓取的范围会越来越少。在一个会话系统中,http消息头里面有很多参数是很快失效的。你辛辛苦苦抓包模拟了一个消息,10分钟后可能就失效了,有些失效时间更短。滑块验证码还有个参数:根据人的鼠标行为编码的一串字符,用来做机器人识别。所以,即使把其它所有参数都模拟对了,这个你无法模拟,必须即时生成。而且它的生成函数是加了混淆的,破解成本很高,即使破解了你也不知道他的网站后台的机器人识别模型是什么。在这些情况下,最好的方法是直接模拟人的行为,模拟的足够真,让他后台的机器人识别模型也分辨不出来。滑块验证码的图片识别部分十分好处理,是所有验证码中最容易识别的那种,麻烦的是模拟人的滑动行为。为了准确模拟人的行为,我在GooSeeker爬虫的6.x版增加了一个开发者工具,用于录制一些行为样本。对于滑块验证码识别来说,观察几个样本就基本知道应该怎样滑动,这个录制工具主要是给其它复杂机器人建模用的。采用这个路线的话,登录和抓网页都用Firefox或者Chrome的driver好了,我是在Firefox环境下实现的。滑动过程就是发送鼠标事件的过程,一切都像人的活动。driver的驱动和网页抓取的源代码在我的专栏文章中有。


    推荐阅读