爬虫初步:入门与介绍
1.什么是爬虫
经常访问网络的朋友可能需要打开各种各样的网页。网页与网页、网页内部之间的相互连接都是通过一种叫做超链接的东西进行关联的,这种超链接,专业术语叫做统一资源定位符,英文缩写为url,也就是我们常说的网址。 用户通过在浏览器中输入url向服务器访问请求,使用的是一种叫做http或者https协议的固定通信格式来获取或者发送数据。
我们可以把互联网想象为一个巨大的蜘蛛网络,如下图所示:
![](https://pic2.zhimg.com/v2-321f7eeb58fe4c98a7e1dcecfa01c415_b.png)
可以把每个网页看作这个网络中的节点,url看作节点间一条条的线。通过其中的某一个节点,以及与之关联的url,递归调用,就能实现访问网络中的所有资源。事实上,用户在使用搜索引擎抓取信息时,使用的原理本质与这个相同,只不过搜索引擎会借助一些强大的算法,比如PageRank等算法对不同的链接进行不同的加权处理,不然以当前互联网的容量,搜索引擎的服务器也受不了。根据权威部门统计,目前搜索引擎能够访问的网页量占总比不到60%,也就是说有超过40%的网页处于暗网之中,除了专门访问,在无墙的状态下,外界也无法访问到。
爬虫的本质指的是通过脚本的形式,通过以上原理,帮助人们去自动抓取互联网中的网页,从而实现数据采集的目的。
当然,由于知识产权的保护,不是所有的网络资源都能够免费访问。并且一般大型网站都会有针对爬虫的反爬虫机制,既是对自身知识资源的保护,也是为了避免DDos攻击,消耗过多的链接资源。
2.爬虫有什么用
上面介绍了,爬虫能够根据用户的自身需求,通过自定义规则,帮助用户去自动抓取网络资源,从而达到一个收集数据的作用。
在大数据时代,数据是一切分析的来源,如何获取大量、高质的数据,是进行数据分析、数据挖掘、数据建模的首要条件。而互联网蕴含着各种各样的资源,如何有效的获取资源,获取数据,抢占行业先机就显得特别重要。因此,爬虫的重要性不言而喻。
3.学习爬虫需要的基础知识
因为爬虫涉及的是万维网,因此大家要对编写网页的语言有所掌握,这里涉及html、css、js。除此之外,因为web网络主要是通过http协议进行通信的,因此熟练掌握http协议也是最基本的要求。其他的,比如ajax、dom、动态验证码之类的也是要掌握。不然在实际运用中,很多功能会受限,达不到理想的效果。
4.如何学习爬虫
既然对爬虫有了一个大体的认识,那么如何学爬虫呢?
首先肯定是要熟悉html、css、js和http协议,因为这些都是一个网页的基本构成部分,都这些不熟,网络爬虫无从谈起。
在对网页有了基本的认识之后,学习一门高级语言进行爬虫操作将必不可少。事实上,任何一种高级语言,比如说C、Java、python、shell、perl等,都是可以进行爬虫操作的。只不过我们这里讲的是python语言,因此在这里推荐使用python进行爬虫学习。
幸运的事,python已经为我们提供了很多现成的开发包,比如beautifulsoup、request、scrapy、xpath等等,来方便我们进行爬虫操作。通过利用这些工具,我们能够非常简单、高效地爬虫网页中的内容,为我们下一步的数据分析打下坚实的基础。