时间:2021-05-22
网站不再单单迎合人类读者。许多站点现在支持一些 API,这些 API 使计算机程序能够获取信息。屏幕抓取 —— 将 HTML 页面解析为更容易理解的表单的省时技术 — 仍然很方便。但使用 API 简化 Web 数据提取的机会在快速增多。根据 ProgrammableWeb 的信息,在本文发表时,已存在 10,000 多个网站 API — 在过去的 15 个月中增加了 3,000 个。(ProgrammableWeb 本身提供了一个 API,可从其目录中搜索和检索 API、mashup、成员概要文件和其他数据。)
本文首先介绍现代的 Web 抓取并将它与 API 方法进行比较。然后通过 Ruby 示例,展示如何使用 API 从一些流行的 Web 属性中提取结构化信息。您需要基本理解 Ruby 语言、具象状态传输 (REST),以及 JavaScript 对象表示法 (JSON) 和 XML 概念。
抓取与 API
现在已有多种抓取解决方案。其中一些将 HTML 转换为其他格式,比如 JSON,这样提取想要的内容会更加简单。其他解决方案读取 HTML,您可将内容定义为 HTML 分层结构的一个函数,其中的数据已加了标记。一种此类解决方案是 Nokogiri,它支持使用 Ruby 语言解析 HTML 和 XML 文档。其他开源抓取工具包括用于 JavaScript 的 pjscrape 和用于 Python 的 Beautiful Soup。pjscrape 实现一个命令行工具来抓取完全呈现的页面,包括 JavaScript 内容。Beautiful Soup 完全集成到 Python 2 和 3 环境中。
假设您希望使用抓取功能和 Nokogiri 来识别 CrunchBase 所报告的 IBM 员工数量。第一步是理解 CrunchBase 上列出了 IBM 员工数量的特定 HTML 页面的标记。图 1 显示了在 Mozilla Firefox 中的 Firebug 工具中打开的此页面。该图的上半部分显示了所呈现的 HTML,下半部分显示了感兴趣部分的 HTML 源代码。
清单 1 中的 Ruby 脚本使用 Nokogiri 从图 1 中的网页抓取员工数量。
清单 1. 使用 Nokogiri 解析 HTML (parse.rb)
清单 11 中的输出显示了 API 名称、它们的标题,以及进一步分析每个 API 的 URL 路径。
结束语
本文中的示例演示了公共 API 在从 Internet 提取信息方面的强大功能。与 Web 抓取和爬取 (spidering) 相比,Web API 提供了访问有针对性的特定信息的能力。Internet 上在不断创造新价值,这不仅通过使用这些 API 来实现,还通过用新颖的方式组合它们,从而向越来越多的 Web 用户提供新数据来实现。
但是请记住,使用 API 需要付出一定的代价。限制问题就常让人抱怨。同样,可能在不通知您的情况下更改 API 规则这一事实,因此在构建应用程序时必须加以考虑。最近,Twitter 更改了它的 API 来提供 “一种更加一致的体验”。这一更改对许多可能被视为典型 Twitter Web 客户端竞争对手的第三方应用程序而言,无疑是一场灾难。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。安装复制代码代码如下:sudogeminstallmechanize抓取网页复制代码代码如下
本文实例讲述了php使用pthreadsv3多线程实现抓取新浪新闻信息。分享给大家供大家参考,具体如下:我们使用pthreads,来写一个多线程的抓取页面小程序
1.爬虫:爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本;利用NodeJS实现一个简单的爬虫案例,爬取Boss直聘网站的web前端相关的招聘信息,
Ruby是一个开源的动态编程语言,它有优美的语法,可用于构建可伸缩的Web应用程序。rubygems可以很好地增强Ruby开发者的开发效率。要在Ubuntu系统
Ruby是一个开源的动态编程语言,它有优美的语法,可用于构建可伸缩的Web应用程序。rubygems可以很好地增强Ruby开发者的开发效率。要在Ubuntu系统