网络爬虫是什么?
网络爬虫就是:请求网站并提取数据的自动化程序
网络爬虫能做什么?
网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。
网络爬虫还被用于爬取各个网站的数据,进行分析、预测近几年来,大量的企业和个人开始使用网络爬虫采集互联网的公开数据,进行数据分析,进一步达到商业目的。
利用网络爬虫能从网上爬取什么数据?
可以好不吹嘘的说,平时从浏览器浏览的所有数据都能被爬取下来。
网络爬虫是否合法?
上面说到了爬虫可以爬取任何数据,那么,爬取数据这种行为是否合法?目前关于爬取数据的法律还在建立和完善中,如果爬取的数据属于个人使用或者科研范畴,基本不存在什么问题;一旦要用于商业用途就得注意了,有可能会违法。互联网界对于网络爬虫也建立了一定的道德规范(Robots 协议)来约束。这里具体看下 Robots 协议 Robots 协议规定各个搜索引擎哪些页面可以抓取,哪些页面不能抓取,Robots 协议虽然没有被写入法律,但是每一个爬虫都应该遵守这项协议。下面是淘宝网的 robots 协议:从图中我们就可以发现淘宝网对百度的爬虫引擎做出了规定,然而百度也会遵守这些规定,不信你可以试试从百度是找不到淘宝里的商品信息的。
python 爬虫的基本流程
Python 爬虫的基本流程非常简单,主要可以分为三部分:(1)获取网页;(2)解析网页(提取数据);(3)存储数据。简单的介绍下这三部分:
获取网页就是给一个网址发送请求,该网址会返回整个网页的数据。类似于在浏览器中输入网址并按回车键,然后可以看到网站的整个页面。
解析网页就是从整个网页的数据中提取想要的数据。
存储数据顾名思义就是把数据存储下来,我们可以存储在文本中,也可以存储到数据库中。
基础爬虫的框架以及详细的运行流程
基础爬虫框架主要包括五大模块,分别是爬虫调度器、URL 管理器、HTML 下载器、HTML 解析器、数据存储器。这五大模块之间的关系如下图所示:
下来我们来分析这五大模块之间的功能:
爬虫调度器主要负责统筹其他四个模块的协调工作。
URL 管理器负责管理 URL 链接,维护已经爬取的 URL 集合和未爬取的 URL 集合,提供获取新 URL 链接的接口。
HTML 下载器用于从 URL 管理器中获取未爬取的 URL 链接并下载 HTML 网页。
HTML 解析器用于从 HTML 下载器中获取已经下载的 HTML 网页,并从中解析出新 的 URL 链接交给 URL 管理器,解析出有效数据交给数据存储器。
数据存储器用于将 HTML 解析器解析出来的数据通过文件或者数据库的形式存储起来。
详细的运行流程如下图所示: