爬虫系列教程零:怎么学习爬虫

我接触爬虫已经快两年了,但是一直没有写下一个系统的爬虫的笔记,最近在上web搜索的课程,又一次用到了爬虫,所以写下这系列文章。我写这个系列的目的主要是巩固自己的知识,梳理知识的体系,所以思路上的内容比较多,有时间也会补一些代码进行说明或者分享一些我做过的爬虫的内容。

如果是想要入门爬虫,我强烈推荐崔庆才的视频:我当时爬虫入门比较痛苦,因为网上的资料比较多,需要仔细的去搜索各个模块的知识,才能有一个宏观的认识,最后很幸运的看到了崔庆才的爬虫系列,非常系统,也非常细致,而且有视频教程,可以说是我看到的目前为止最适合小白入门的教程了。非常推荐大家去看他的教程。

最后我说一下我目前对爬虫的理解:

  1. 爬虫是什么?通过模拟用户的行为,来达到对网站的数据的获取或者在网站上完成某种特定的任务;需要对计算机网络,操作系统有一定的理解,才能写出高性能的爬虫。
  2. 我们可以用爬虫来干什么?做搜索引擎;或者爬取一些网站的信息,如淘宝、豆瓣、微博;完成抢票、抢月饼等任务。
  3. 爬虫的学习内容有哪些?用于写爬虫的语言有很多,如C++,java,python,可以根据所需要的业务的耗时与性能要求决定写爬虫的语言,本文采用python;虽然语言不同,但是需要的基本技能是相似的:
    • 首先是学习当前语言下的网络连接工具的用法,比如python里面的requests库;
    • 然后是爬虫编写思路的学习,主要是从网页动态和静态入手,这一部分着重能爬下来大部分网站就可以;
      接着需要学习爬虫与反爬的较量,上一步的动态网页就是一种很好的反爬措施,但是现实中还有更多的反爬措施,比如:设置验证码,封禁ip,利用反向代理封禁真实ip,强制用户登录,设置爬虫陷阱,返回内容不规则,检测用户行为规律等;当然用户也有很多反反爬的措施:cookie池,IP池,验证码众包网站,神经网络识别验证码,做好异常处理;这一步的内容就比较丰富,需要用户和网站斗智斗勇,尤其是一些大型的网站,往往在这一步设置了很多的难题,如果学会这一步,会大大扩充可以爬取的网站;这一步着重解决能不能的问题;
    • 不管要解决能爬,还要解决爬的好,学习如何能让爬虫效率提高,充分利用资源,于是并发的分布式的爬取也是我们需要重点掌握的。这一步就要学习分布式,进程、线程、协程这些概念,开始接触框架,做到爬虫中断后自动重启,断点续爬,鲁棒性等要求,学会连接数据库,做到可视化;这个部分就是解决爬的好的问题。
    • 最后要解决爬虫在大规模下的爬取问题,可能需要突破一些地方的性能瓶颈,网络IO,读写IO,对方的服务器的压力等,但是我没有接触过这种情况下的爬虫,就不多说了。
  4. 特别特别需要注意的一点是,爬虫可能违反法律,所以要时刻注意当前的行为是否在法律允许的范围之内。

话不多说,马上就开始填坑之旅~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章