Google 与 Yahoo 等网站的背后,都有一个强大的网页收集程序,可以将全世界的网页通通抓回去储存以便提供搜寻之用,这个程式就称为 "爬虫 (Crawler)",也有人索性称为蜘蛛 (Spider),因为这个就好像在网络上爬来爬去的蜘蛛一样,到处抓网页回家放。 那么到底什么是网络爬虫呢?橙子君就和大家一起来探究一下“网络爬虫吧”,希望对大家有所帮助。
网络蜘蛛(Web spider)也叫网络爬虫(Web crawler),蚂蚁(ant),自动检索工具(automatic indexer),或者(在FOAF软件概念中)网络疾走(WEB scutter),是一种“自动化浏览网络”的程序,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。 网络爬虫始于一张被称作种子的统一资源地址(URLs)列表。当网络爬虫访问这些统一资源定位器时,它们会甄别出页面上所有的超链接,并将它们写入一张"待访列表",即所谓"爬行疆域"(crawl frontier)。此疆域上的统一资源地址将被按照一套策略循环访问。如果爬虫在他执行的过程中复制归档和保存网站上的信息,这些档案通常储存,使他们可以被查看。阅读和浏览他们的网站上实时更新的信息,并保存为网站的“快照”。大容量的体积意味着网络爬虫只能在给定时间内下载有限数量的网页,所以要优先考虑其下载。高变化率意味着网页可能已经被更新或者删除。一些被服务器端软件生成的URLs(统一资源定位符)也使得网络爬虫很难避免检索到重复内容。
简单点说,网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。
网络就是指互联网上的所有网站,各大搜索引擎都会派出它自己的爬虫程序,然后进入到互联网上去抓取,把抓取到的所有内容存到它的网页内容库里面,然后在内容库里面再通过索引程序做一个索引库,最终展现在用户面前的只有一个简单的搜索框,然后用户通过搜索框输入一个关键词,然后就会马上快速的去找到对应的内容,找到之后就会展现出来给用户看,这就是一个搜索引擎爬虫的工作原理。
在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什麽样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。
一种分布式网络爬虫的架构设计
通常把爬虫爬取资源分成一下几个步骤:url-crawling(链接抓取),info-crawling(信息抓取),format&fusion(规整与聚合)。 具体执行顺序为: * 1.获取目标路径 * 2.创建一个URL对象,将目标路径传递过去 * 3.建立一个和URL相关的链接 * 4.有的网站有反爬虫机制,这个时候需要我们伪装成为一个浏览器:设置User Agent * 5. 通过链接获取一个输入流,开始抓取网站上的信息 * 6.利用数据库或者json等将网站信息保存,并且读取出来 * 7.关闭流 以下是网络爬虫抓取网页的架构及流程图: