2upmedia / scout
灵活、结构化的抓取
0.2.1
2015-07-07 07:04 UTC
Requires
- php: >=5.4
- ext-xml: *
Requires (Dev)
- guzzlehttp/guzzle: ~5.3
This package is not auto-updated.
Last update: 2024-09-28 18:05:21 UTC
README
Scout 是一个易于使用且快速的抓取器,它使用您对 PHP 的了解来以您想要的方式转换数据,而无需学习其他转换语言,如 XSLT。
目前处于稳定测试阶段,我鼓励提交有关错误、反馈和想法的工单。
当前支持
- 文档类型:HTML 和 XML
- 查询:XPath
- PHP 5.4+,包括 PHP 7!
未来计划
- 保存到 JSON、CSV 和 XML 文件
- 支持使用 CSS 选择器进行查询
- 支持查询 JSON
- 能够持久化信息并跟踪原子更改
可能的用途
- 跟踪搜索排名
- 间谍竞争对手的网站
- 抓取优惠券网站
- 抓取您的聚合网站所需的网站
- 将数据从大型静态网站迁移到 CMS 中
- 从广泛的在线工作板中获得您感兴趣的工作列表
- 将您的 Web 服务响应的 XML 转换为 JSON
- 任何其他涉及将 XML/HTML 转换为您想要的 数据结构 的事情。
咨询
如需咨询,请联系 jorge@2upmedia.com
示例
<?php $queryHandler = new Xpath(Html::parseDocument(file_get_contents('./tests/fixtures/header-and-table.html'))); $titlesAndPrices = (new DataPoint())->setQueryHandler($queryHandler); $data = $titlesAndPrices ->setCollection('//table/tr') ->forKey('title')->set('./td[1]') // each tr is used as a context, so the key selectors should use "." to be relative to it ->forKey('price')->set('./td[2]') ->getData(); /* array ( 0 => array ( 'title' => 'Title #1', 'price' => '$10.00', ), 1 => array ( 'title' => 'Title #2', 'price' => '$23.20', ), 2 => array ( 'title' => 'Title #3', 'price' => '$1.00', ), 3 => array ( 'title' => 'Title #4', 'price' => '$5.00', ), ) */
有关如何使用 API 的更多信息,请参阅 集成测试。
XPath 入门
目前使用 XPath 作为查询语言。XPath 在练习了一段时间后很容易使用。
XPath 的核心是 "路径"。如果您理解文件路径和 URL,您已经理解了 XPath 的一半。
学习语法: https://w3schools.org.cn/xpath/xpath_syntax.asp。然后查看 XPath 入门示例。