爬虫就是因为太有技术含量,所以会的人少,可能看起来做的人就少了
爬虫远比我们想的复杂
大多数人会的,只是造一颗螺丝钉,而整个爬虫系统,就好比造火箭
大多数人,只掌握了入门级的水品,也就是最多能造个螺丝钉,造不出火箭
为什么我说爬虫远比我们想的复杂呢?
爬虫绝不是表面的 用requests、urllib,发个http请求那么简单
如果只是发个http请求,根本用不着专门来学,随便找个火车头之类的工具,拖几下鼠标就搞定了
实际情况中,你要抓人家的数据, 会有很多门槛:
1.人家检测出你是爬虫,拉黑你IP (人家究竟是通过你的ua、行为特则 还是别的检测出你是爬虫的?你怎么规避?)
2.人家给你返回脏数据,你怎么辨认?
3.对方被你爬死,你怎么设计调度规则?
4.要求你一天爬完10000w数据,你一台机器带宽有限,你如何用分布式的方式来提高效率?
5.数据爬回来,要不要清洗?对方的脏数据会不会把原有的数据弄脏?
6.对方的部分数据没有更新,这些未更新的你也要重新下载吗?怎么识别?怎么优化你的规则?7.数据太多,一个数据库放不下,要不要分库?
8.对方数据是JavaScript渲染,那你怎么抓?要不要上PhantomJS?
9.对方返回的数据是加密的,你怎么解密?
10.对方有验证码,你怎么破解?
11.对方有个APP,你怎么去得到人家的数据接口?
12.数据爬回来,你怎么展示?怎么可视化?怎么利用?怎么发挥价值?
- 等等 …
你看,一个强大的爬虫,涉及很多学科的知识,是一门很大的学问
你要:
- 学http协议,知道哪个协议可以帮你省带宽和时间
- 学数据库,不然咋存数据,咋优化?数据库分布式也要了解一点吧?
- 学算法,基本的调度算法,爬虫调度也要了解吧?
- 学分布式、学redis,分布式总要懂一点,不然爬虫怎么协作呢?
- 学JavaScript,不然你怎么看懂人家的数据是怎么处理的,不然你怎么反向解析?
- 基本的解密破解知识要懂吧?
- 验证码破解要懂吧?机器学习要懂吧?现在破解验证码都上机器学习了!
- ios开发要学吧?安卓开发也要学吧?不然怎么反编译人家的app去拿人家隐藏的接口加密算法?
- 等等 …
你看,这设计多少知识了,每一个知识点,基本都是一个学科,都不是几本书能解决的
一个人,想精通这些,是十分困难的,所以一般是团伙协作作案
你负责端茶递水、我负责解密他的接口、另外的同事负责写代码,搞数据库,破解验证码 等等
你问一个人能做出这么强大的东西吗?
可以,在有一定知识储备的情况下,用人家的轮子,是完全可以搭建起来的
所以,网上的爬虫教程,无法把这些系统的讲给你听,就好比你想学赚钱,谁又能给你一个系统的教程呢?
你想上班赚钱,还是想卖豆腐赚钱?
卖什么豆腐?
什么价格?
店铺开哪里?
不要请人?
不知道!
其实我上面列出的每个知识块,网上都有,零零散散的而已
你需要自己去辨别,整合这些知识,然后为你所用
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!