WebHere
WebHere 是一个 Objective-C 框架,用于从 iOS 8+ 和 OSX 10.10+ 平台上进行网页抓取。
简而言之,网页抓取是对网站进行解析并从其中提取 HTML 页面的数据。
该项目受到了 RestKit 的启发,但主要针对 HTML 数据,并采用更简单的形式(无需事先映射,模型类声明他们自己的构建策略);它主要依赖于
- AFNetworking 来执行所有网络操作。
- GDataXML-HTML 来使用 XPath 提取数据。
这两个项目本身也很值得注意,请务必访问它们的页面并了解它们的 API,因为 WebHere 主要提供对它们的 API 的统一界面。
功能
- 下载 HTML 页面并将数据提取到用户定义的类中。
- 允许用户使用 XPath 查询 HTML 文档。
- 提供预定义方法以提取链接和表单。
- 已测试。
限制
- 目前仅测试了 GET 和 POST REST 方法。
- 请关注在进行网页抓取时的法律问题。
使用方法
要运行示例项目,首先克隆仓库,然后从 Example 目录中运行 pod install
。
查看提供的测试用例应该会给你一个关于 API 的概述。
示例文件夹包含一个将 HTML 映射到查询 Google 的 iOS 应用。
需求
依赖项由 Cocoapod 自动管理。如果你必须将 WebHere 添加到源树中并在 Cocoapod 之外使用它,则必须添加以下项目与 WebHere 一起使用
- AFNetworking 用于网络操作
- GDataXML-HTML 用于 XPath 提取
安装
WebHere 通过 CocoaPods 提供。要安装,只需将以下行添加到 Podfile 中
pod "WebHere"
或者,你可以将这些源作为 Git 子模块添加。
作者
Rui Lopes,[email protected]
许可证
WebHere 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。
测试
项目已通过使用以下单元测试覆盖
- Specta/Expecta 作为通用测试框架。
- Nocilla 用于模拟网络请求。
请注意,所有测试都是本地执行的,这意味着不需要实际的网络访问,所有请求都由 Nocilla 模拟。
参与贡献
- 进行代码分支
- 创建您的功能分支
- 提交您的更改
- 将更改推送到分支
- 创建新的拉取请求