大多数人,只掌握了入门级的水品,也就是最多能造个螺丝钉,造不出火箭
为什么我说爬虫远比我们想的复杂呢?
爬虫绝不是表面的 用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去拿人家隐藏的接口加密算法?
- 等等 …
你看,这设计多少知识了,每一个知识点,基本都是一个学科,都不是几本书能解决的
一个人,想精通这些,是十分困难的,所以一般是团伙协作作案
你负责端茶递水、我负责解密他的接口、另外的同事负责写代码,搞数据库,破解验证码 等等
你问一个人能做出这么强大的东西吗?
可以,在有一定知识储备的情况下,用人家的轮子,是完全可以搭建起来的
所以,网上的爬虫教程,无法把这些系统的讲给你听,就好比你想学赚钱,谁又能给你一个系统的教程呢?
你想上班赚钱,还是想卖豆腐赚钱?
卖什么豆腐?
什么价格?
店铺开哪里?
不要请人?
不知道!
其实我上面列出的每个知识块,网上都有,零零散散的而已
你需要自己去辨别,整合这些知识,然后为你所用
现在你明白为什么网上的教程,都不够系统,不够深入了吧
因为这很难,涉及到的学科知识太多了
如果你希望你的python水平提高,可以关注我呀,我的所有回答可都是高质量的,绝不废话
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!