3.1 网络爬虫基础
对于网络爬虫这一新奇的概念,大家可以将其理解为在网络中爬行的一只小蜘蛛,如果它遇到喜欢的资源,就会把这些信息抓取下来作为己用。在本节的内容中,将详细讲解网络爬虫的基础知识。
我们在浏览网页时可能会看到许多好看的图片,如打开网页http://image.baidu.com/。网页实质是由HTML代码构成的,爬虫的功能是分析和过滤这些HTML代码,然后将有用的资源(如图片和文字等)抓取出来。在现实应用中,被抓取出来的爬虫数据十分重要,通常作为数据分析的原始资料。
在使用爬虫抓取网络数据时,必须要有一个目标URL才可以获取数据。网络爬虫从一个或若干初始网页的URL开始,在抓取网页的过程中,不断从当前页面上抽取新的URL,并将URL放入到队列中。当满足系统设置的停止条件时,爬虫会停止抓取操作。为了使用爬取到的数据,系统需要存储被爬虫抓取到的网页,然后进行一系列的数据分析和过滤工作。
在现实应用中,网络爬虫获取网络数据的流程如下。
(1)模拟浏览器发送请求
在客户端使用HTTP技术向目标Web页面发起请求,即发送一个Request。在Request中包含请求头和请求体等信息,是访问目标Web页面的前提。Request请求方式有一个缺陷,即不能执行JS和CSS代码。
(2)获取响应内容
如果目标Web服务器能够正常响应,在客户端会得到一个Response响应,Response内容包含HTML、JSON、图片和视频等类型的信息。
(3)解析内容
解析目标网页内容时,既可以使用正则表达式提高解析效率,也可以使用第三方解析库提高解析效率(常用的第三方解析库例有Beautifulsoup和pyquery等)。
(4)保存数据
在现实应用中,通常会将爬取的数据保存到数据库(如MySQL,Mongdb、Redis等)或不同格式的文件(如CSV、JSON等)中,为下一步的数据分析工作做好准备。