写在前面的话:
折腾爬虫也有一段时间了,从一开始的懵懵懂懂,到现在的有一定基础,对于这一路的跌跌撞撞,个人觉得应该留下一些文字性的东西,毕竟好记性不如烂笔头,而且毕竟这是吃饭的家伙,必须用心对待才可以,从今天起,我将会把关于爬虫的东西进行一个整理,以供后期的查阅,同时也想将自己的一点点经验分享给大家。
关于爬虫,在我们了解什么是爬虫之前,首先应该清楚为什么会需要爬虫。随着互联网的全球化,人们可以非常方便的通过网络来获取信息,但是,起初获取信息的方式就是人为的浏览、记录。但是当人们需要获取大量的信息时,人工方式就显得效率极其低下,这时,有些人就编写了一些程序放在互联网上运行,这些程序会按照人们编写的逻辑来快速的在互联网上采集信息,省事又省力,这种程序就叫做爬虫,也叫做蜘蛛(spider)。所以我们知道了,爬虫其实就是人为编写的一些程序,也也可以称之为脚本。
爬虫是从哪儿来分析采集数据呢?当然是从网页上,比如人来获取信息是输入了关键字来搜索,然后点击想要看的网页,或者直接输入某一个网址来获取某一个页面的,那么爬虫呢?爬虫是如何获取页面的呢? 说白了,爬虫也是通过技术手段来模拟人的操作来获取页面的过程。爬虫先是模拟人的操作来获取到目标页面,然后再对目标页面进行分析,从而采集到人们刚兴趣的信息。 主要原理如下图:
从上图我们了解到了爬虫的基本原理,但是请大家注意,上图中有两个过程我标红了,为什么呢?因为在整个爬取数据的过程中,这两个步骤是非常非常重要的,而且这也是爬虫与反爬相互博弈的地方。
从上图我们可以了解到,爬虫的运行,主要分为四个过程:
1. 获取目标url
2. 获取网页
3. 页面解析、提取信息
4. 数据持久化
不过对于我们来说,在编写爬虫之前,我们肯定已经知道了想要获取的网站地址,所以第一步我们基本上可以跳过。
下面的二、三、四步是非常重要的,但是最最重要的还是第二、三步。
关于第二步:获取网页,我们首先应该掌握两种Python标准库,一种是urllib,另一种是request,这两种库是帮助我们来获取目标网页的,当然还有一些其他的方法,这个我们以后会细细说来。
对于第三步:解析页面,我们需要掌握集中解析库:Xpath、css选择器‘、正则表达式、Beautiful Soup、pyquery。这些库可以帮助我们从html网页的各种标签中准确的获取到我们想要得到的数据。
关于第四步:数据的持久化,一般来说数据都会被放到数据库中,常见的数据库如mysql,oracle,MongoDB等等,当然,有时数据量过大也会有专门的文本服务器,图片服务器来存放数据。
好了,啰啰嗦嗦说了这么多,下一篇博客我就会直接从常用的请求库urllib来开始说起。
想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python