Web spider 是用来进行 Internet 信息的搜索、过滤和聚合的软件代理。使用通用脚本语言和一些 Web 模块组合,就可以轻松地开发自己的 Web spider。本文介绍了怎么样为 Linux® 构建 spider 和 scraper,从而实现在 Web 站点上爬行并搜集信息,具体到本例就是搜集股票数据。
spider 是一个为实现特定目的以特定方法在 Internet 上爬行的程序。其目的可能是为了搜集信息也可能是为了理解 Web 站点的结构和有效性。spider 是现代搜索引擎(例如 Google 和 AltaVista)的基础。这些 spider 会自动从 Web 上搜索数据并将数据传递给其他应用程序,这些应用程序会对 Web 站点的内容进行索引,以便获得最好的搜索条件集。
 |
Web spider 作为 agent
Web spider 和 scraper 是软件 Robot 或 agent(Alan Kay 在 20 世纪 80 年代发明了这个词)的另外一种形式。Alan 将 Agent 理解为计算机世界中用户的一个代理 (proxy)。Agent 可以被赋予一个目标并在其域中为实现这个目标而工作。如果受困,它可以从用户那里获取建议并继续完成自己的目标。
现在,agent 已经按照属性(例如自治性、自适应性、通信和协作等)进行了分类。另外一些属性,例如移动性甚至个性化,还在研究之中。本文中的 Web spider 属于名为 Task-Specific Agent 的这一类别。
|
|
Web scraper 是一种与 spider 类似的技术,不过它具有更多合法性问题。scraper 是一种 spider,其目标是为了从 Web 上获取特定的内容,例如产品的成本或服务。scraper 的一种用途是为了获得有竞争力的价格,从而确定给定产品的价格,以便能够制定出自己产品的合理价格或相应地进行宣传。scraper 还可以从很多 Web 站点上搜集大量数据并将这些信息提供给用户。
生物学动机
当考察自然界中真正的蜘蛛时,您会从它与环境的交互性(而绝非孤立地)去考察它。蜘蛛会看到并感受到自己身旁的路,并会有目的地从一个地方移动到另外一个地方。Web spider 也会以类似的方式进行操作。Web spider 是一种使用高级语言编写的程序。它通过使用网络协议与环境进行交互,例如对 Web 使用超文本传输协议(HTTP)。如果 Web spider 需要与您进行通信,那么它可以使用简单邮件传输协议(SMTP)来发送 e-mail 消息。
不过 Web spider 并不限定于使用 HTTP 或 SMTP。有些 spider 使用 Web 服务,例如 SOAP 或可扩展标记语言远程过程调用(XML-RPC)协议。其他 spider 会使用网络新闻传输协议(NNTP)对新闻组进行遍历,或者寻找 RSS(Really Simple Syndication)提要中有趣的新条目。尽管自然界中的大部分蜘蛛都只能看到明暗强度和动作的变化,但是 Web spider 却可以使用很多种协议来看和感知。
spider 和 scraper 的应用程序
 |
Web spider 的 “眼和腿”
Web spider 查看并在 Internet 上移动的主要手段是 HTTP。HTTP 是一个面向消息的协议,其中客户机连接到一台服务器并产生请求,服务器响应此请求。每个请求和响应都是由一个头和主体构成的,头提供了状态信息以及主体内容的描述。
HTTP 提供了 3 种主要的请求。第一种是 HEAD,它请求的是服务器上某资源的信息。第二种是 GET,它请求的是服务器上的某资源,例如文件或图像。最后一种是 POST,它允许客户机通过 Web 页面与服务器进行交互(通常是通过一个 Web 表单)。
|
|
Web spider 和 scraper 是非常有用的应用程序,因此可以找到它们的很多种应用,其中有好有坏。下面让我们来看一下使用这些技术的几个应用程序。
搜索引擎 Web 爬虫
Web spider 可以使 Internet 的搜索变得非常简单而有效。搜索引擎使用了很多 Web spider 在 Internet 上搜索 Web 页面,返回它们的内容,并对其进行索引。在这个过程完成之后,搜索引擎就可以快速搜索本地索引来确定哪些结果最适用于该次搜索。Google 还会使用 PageRank 算法,一个 Web 页面在搜索结果中的排名是基于链接到此 Web 页面的其他页面的多少。这就像是一个投票系统,获得最多票数的页面在整个结果中的排名也最高。
对于 Internet 进行这样的搜索,其代价非常昂贵,Web 内容与索引程序进行通信所需要的带宽以及对结果进行索引所需要的计算成本都很高。为此需要很多存储空间,但是当我们考虑到 Google 可以为 Gmail 用户提供 1000 MB 的存储空间时,显然可以看出存储空间已经不是什么主要问题了。
共6页: 上一页 1 [2] [3] [4] [5] [6] 下一页
|