人们正以前所未有的速度转向互联网,我们在互联网上所做的很多行为都会产生大量的“用户数据”,比如微博、购买记录等。互联网成为海量信息的载体;Internet是目前分析市场趋势、监控竞争对手或获取销售线索的最佳场所。数据收集和分析能力已成为推动业务决策的关键技能。如何有效地提取和使用这些信息成为一个巨大的挑战,而网络爬虫是一种很好的自动收集数据的通用手段。本文将介绍爬虫的种类,爬虫的爬取策略,以及爬虫深度学习所需的网络基础知识。01什么是爬虫?网络爬虫(也称为网络蜘蛛、网络机器人,在FOAF社区中更常被称为网络追赶者)是一种按照一定规则自动抓取万维网上信息的程序或脚本。其他不太常用的名称包括ant、autoindex、emulator或worm。Web爬虫通过爬取Internet上Web服务器的内容来工作。是一种用计算机语言编写的程序或脚本,自动从互联网上获取信息或数据,在每个需要的页面上扫描抓取一定的信息,直至处理完所有可以正常打开的页面。作为搜索引擎的重要组成部分,爬虫的主要功能是爬取网页数据(如图2-1所示)。目前市面上流行的采集器软件都是利用了网络爬虫的原理或功能。▲图2-1网络爬虫象形图02爬虫的意义现在大数据时代已经到来,网络爬虫技术已经成为这个时代不可或缺的一部分。企业需要数据来分析用户行为、自身产品的不足、竞争对手的信息等,而这一切的首要条件就是数据的收集。网络爬虫的价值其实就是数据的价值。在互联网社会,数据是无价之宝,一切都是数据。谁拥有大量有用的数据,谁就拥有决策的主动权。网络爬虫的应用领域很多,如搜索引擎、数据采集、广告过滤、大数据分析等。1)抓取各大电商网站的商品销售信息和用户评价进行分析,如图2所示-2。▲图2-2电子商务网站产品销售信息2)分析大众点评、美团等餐饮网站的用户消费、评价及发展趋势,如图2-3所示。▲图2-3餐饮网站用户消费信息3)分析各城市中学区房的占比,学区房价格比普通二手房高多少,如图图2-4。▲图2-4学区房比价对比。以上数据通过ForeSpider数据采集软件爬取。有兴趣的读者可以尝试自己爬取一些数据。03爬虫原理我们通常将网络爬虫的组件分为初始链接库、网络爬虫模块、网页处理模块、网页解析模块、DNS模块、待爬链接队列、网页库等模块,模块可以形成一个循环系统,以便连续进行分析和抓取。爬虫的工作原理可以简单的解释为先找到目标信息网络,然后是页面爬取模块,然后是页面分析模块,最后是数据存储模块。具体如图2-5所示。▲图2-5爬虫示意图爬虫工作的基本过程:首先,在互联网中选取一些网页,将这些网页的链接地址作为种子URL;将这些种子URL放入待抓取的URL队列中,爬虫从抓取的URL队列开始依次读取;通过DNS解析URL;链接地址转换成网站服务器对应的IP地址;网页下载器通过网站服务器下载网页;下载的网页为网页文件形式;提取网址;过滤掉已经抓取过的网址;继续爬取还没有爬取的url,直到待爬取的url队列为空。04爬虫技术种类重点网络爬虫是一种“面向特定主题需求”的爬虫程序,而通用网络爬虫是搜索引擎爬虫系统(百度、谷歌、雅虎等)的重要组成部分,主要目的是抓取互联网将网站上的网页下载到本地,形成互联网内容的镜像备份。增量爬取就是爬取某个站点的数据。当网站有新的数据或网站的数据发生变化时,会自动抓取新的或变化的数据。网页按存在方式可分为表层网页(surfaceWeb)和深层网页(deepWeb,也称隐形网页或隐藏网页)。表层网页是指能够被传统搜索引擎收录的页面,即以超链接可达的静态网页为主的网页。深层网页是指大部分内容无法通过静态链接获取,隐藏在搜索表单后面,只能通过用户提交一些关键字才能获取的网页。
