关于爬虫,相信有不少同学都接触过。譬如你通过百度搜索“慕课网”,然后跳转到慕课网的首页,这里你访问的百度首页就用到了爬虫技术,它把慕课网的首页源代码爬取到了搜索引擎服务器中,进行分析,处理等一系列的操作,这样你通过搜索关键词就会找到对应的网站。
那么,到底什么是爬虫呢?它有很多的概念,在动物学里面它被称作为一种可以爬行的昆虫,譬如蜘蛛、瓢虫等。但这不是我们关注的重点。作为一个开发者,爬虫当然是一段程序,亦或是一段脚本(代码),譬如最常见的python网络爬虫代码。
那么问题来了,爬虫都可以用来做什么呢?看起来还是挺常用的。没错,爬虫确实很常见,除了文章开头说道的搜索引擎有用到,那还有哪些应用场景呢?
首先,在大数据领域、数据分析领域。随着BT(Big Data)时代的来临,有很多业务场景是基于数据的。譬如根据用户的上网行为进行用户画像,这里一定会用到用户的公开信息,譬如:用户经常上哪些网站,搜哪些关键词,经常去哪些场所...。要获取到这些信息,可能需要获取到你的微博信息、地址信息、搜索记录、甚至的好友关系等诸如此类。那么要拿到这些信息,爬虫就派上用场了。
其次,在电商领域。 电商,这个很常见吧,相信大家都在网上买过东西吧。譬如你去某平台搜索一本书籍,这时它会告诉你在某东、某宝、某猫平台各自的销售价格。这时你会有一个更划算购买方案。
还有,在运维领域。 打个简单的比方。你上线了一个网站,需要我帮你做监控。在你网站宕机了、某个服务起不来了的时候,使用邮件、短信通知你。这个很常见吧。
当然还有很多很多的场景都用到了爬虫...
讲了这么多,有同学按奈不住了,那该如何学习呢?需要掌握哪些基本技能呢?其实,很简单,只有两个步骤:打好基础、勤学苦练。
我们先看看要哪些基础。
要想学会爬虫,首先你需要有python的编程基础。有了编程基础,你还需要掌握以下技能:
-
网络知识。http、https协议要略知一二。http的请求方式,常见的GET、POST请求你要非常了解。常见的http状态码各自的含义你要铭记于心,诸如200、500、404等。
-
前端基础。要有基础的前端知识,能看懂html/html5,javascript等知识,这样你才能在网页中找到你想要的数据。还要了解一些常见的数据机构,譬如xml类型数据、json相关的数据等。
-
分析接口、网页的技能,这项技能源自“社会行为学”。这个怎么说呢?你要快速定位到你要的数据是同步的还是异步的,同步的在拿到数据后可以直接解析,异步的就麻烦了,我们要通过经验和积累来找到异步的数据源。然后通过假设-验证找到我们想要的数据。
- 数据存储。 爬到了数据,我们还要存储下来,这里我们需要掌握一些数据库相关的知识,包括关系型数据库和非关系型数据。像常见的mysql、redis、mongodb等等。
要掌握这些技能,我们改怎么学呢?根据我个人的经验,可以按照如下步骤进行学习入门:
- python3 基础语法。这个就不用多说了。
- python操作常见的数据结构。字符串的操作,xml数据与python对象的相互转换及操作,json数据与Python对象的相互转换和操作。
- python网络库的使用。urllib,requests等库的使用。
- python正则表达式。用于解析字符串,找到我们想要的数据。
- xpath, bs4的使用,用户解析html,查找我们想要的数据。
- html/js基础知识。这个属于前端开发的领域了,不求精通,但要看得懂。
- mysql数据库知识、sql语法知识。redis\mongodb数据库知识等。
- ...
看起来很多也很杂,如果自己看书找资料的话,可能就没那么顺利了。如果能有一套视频教程就好了,传送门《最火Python3 玩转实用小工具》 只要你有python3的基础,学完第一章即可轻松入门python爬虫。