网络爬虫的英文为Web Spider,又称做网络蜘蛛或网络机器人。如果把互联网比喻成一张巨大的蜘蛛网,数据便是存放于蜘蛛网中的各个节点,爬虫就是网中爬行的蜘蛛,沿着网络抓取自己的猎物(数据)。
网络爬虫简单来说就是一种按照一定规则,自动地抓取互联网中信息的程序或脚本。
我们知道,网络爬虫执行的基本流程是:模拟用户使用浏览器向网站发送请求,网站响应请求后将网页文档发送过来,爬虫对网页做信息提取和存储。具体流程如图3-1所示。
图3-1 爬虫执行流程
图3-1中的爬虫执行流程,介绍如下:
(1)发送请求。
爬虫设定一个URL,模拟浏览器使用HTTP协议向网站服务器发送访问请求。
(2)获取HTML文档。
服务器接收到请求后,将HTML文档(或者图片、视频等其他资源)发送给爬虫。
(3)抽取数据。
爬虫使用XPath或BeautifulSoup从HTML文档中抽取出有用的数据。
(4)保存数据。
将抽取到的数据保存到文件(CSV、JSON、TXT等)或数据库(MySQL、MongoDB等)中,实现数据的持久化存储。
上面流程中的每一步,看似简单,但实现起来着实不易。如何伪装成浏览器?如何构造一个HTTP请求发送给网站服务器?如何获取网站服务器发送的HTML文档?如何抽取HTML数据?如何将每一个步骤关联起来?种种问题,在学习Scrapy爬虫框架后,都能轻松解决。还等什么呢?下面开始我们的Scrapy学习之旅吧!