有点标题党的意思,偶尔使用一下套路,看能不能留住你。。。
好久没发手记了,之前的文章使用的都是一些基础爬虫的知识,特别是在做一些小的项目的时候,运用好那些基础知识就完全够用了。所以如果没有用到新的知识或没有接触到新的知识的时候,我就没有写出来,这就是这么长时间没有发文的原因。并且,我感觉我的爬虫技术一直都处在初级阶段,原地踏步,没有一点进步,也就造成了“没话可说”的尴尬地步。
学习最好还是要以需求为驱动才能够快速成长。这是我最近一段时间的体会,其实也是我最近在写爬虫的思考。通过需求,让你处于紧迫的状态,不断学习新的知识,去满足这样那样的需求。这个时候,你会处于一种高度集中的状态,你的学习能力也是最强的时候。
起因
前几周帮别人写了一份爬虫,逻辑不难,步骤也不繁琐,只要简单的几步就可以,但是数据量是我目前接触的最多的一次,将近 100万 的数据量。
就算这条虫子不慌,它爹心里也慌呀!要是中途出现什么情况,没有做好断点续爬的准备的话,那岂不是得从头再来?
还有就是,这么多的数据,在一台机子上爬,效率明显是很慢的,如果学会一点集群和分布式爬虫,使用上,那每一台机子的压力就会小很多。
还有一点能够提高效率的方法就是通过使用进程、线程。这些我也还不是很懂,因为这次的项目需要 Selenium
才能通过验证,所以我也就没有使用,不然肯定也要学一下,就是不知道 Selenium
中有没有多进程,线程这种东西?
再有就是 爬虫的监控 和 异常情况的通知 。爬虫的监控我没有接触过,不过异常情况的通知,我倒是想着通过邮件提醒,虽然简单,但是却也能够达到目的,所以我在做这个项目的时候,使用了一下,感觉还可以,后面可能会详细的写一写。
说爬虫怎么能不说 反爬 呢?说一下我这次遇到的反爬机制。它的反爬主要是在你登陆的时候,就已经干掉了大部分想要爬取它信息的人了。(因为不能透露太多的信息,所以就用淘宝来举个例子吧,个人感觉难度更淘宝也是差不多的。)
为什么这么说呢?你可以去试一下淘宝的登陆,看是有多么的难。相信爬过淘宝的都知道,淘宝的ua
参数,是经过了算法将一大堆因素组合起来的,想要破解,可能要琢磨到脑壳疼吧。。。
所以只能通过使用 Selenium
进行模拟登陆。但我可以很绝对地告诉你,淘宝能够识别你使用了自动化工具,你的滑块验证码无论怎么刷新,永远都是错误状态,永远不会成功。就像下图一样
我试着使用了网上一种声称能够突破的办法: 使用代理。果然,理想很美满,现实很骨感。滑块验证码是通过了,但是逃不过 异地登陆短信验证 这一关。
如果想要体验一下我当时的绝望感,可以自己尝试着去搞一下淘宝的数据看下,看一下你能不能成功 “突破上分”
最后
当然,BB了这么一大堆,还是要给一点干货的。那就给个我个人认为 爬虫进阶的方向 吧!
- 过硬的反“反爬”能力
- 进程与线程
- 断点续爬
- 分布式
- 爬虫监控
- 异常通知
通过这次爬虫,我有一种打通了任督二脉的感觉,这种感觉就好像,那些打王者荣耀厉害的人说的 意识一样 :什么时候该反野,什么时候该团一样。不知道这样讲能不能体会到我醍醐灌顶的那种感觉?
还有一点体会,就是把事情往难了想和往量多了想,你就能找到当下自己所察觉不到的漏洞。当然,往难里想也是需要一定的基础的;但是往量多的方面想,这就没有任何难度了,在脑海中模拟,总能挑出一点瑕疵了吧
以前听过下面这句话,没有什么深刻的体会,也没往深处想;现在,算是真正的理解了。
再大的困难除以13亿,都会变得很渺小!再小的力量乘以13亿,就会变成爱的海洋。
共同学习,写下你的评论
评论加载中...
作者其他优质文章