jerodev / diglett
v1.1.7
2020-04-27 12:48 UTC
Requires
- php: ^7.1.18
- fabpot/goutte: ^3.2
- symfony/dom-crawler: ^4.1
Requires (Dev)
- phpstan/phpstan: ^0.10.8
- phpunit/phpunit: ^7.4
This package is auto-updated.
Last update: 2021-02-15 16:56:25 UTC
README
Diglett是一个基于Symfony DomCrawler组件的扩展网络爬虫。它允许使用扩展和自定义CSS选择器来轻松地从网页中获取数据。
要求
- PHP 7.1.18或更高版本
如何使用
Diglett包含一个返回Diglett实例的web客户端,但您也可以将您自己的Symfony Crawler对象注入到Diglett类中。从您的Diglett对象开始,您可以开始使用实现专用CSS过滤函数的不同功能。
$diglett = \Jerodev\Diglett\WebClient::get('https://www.tabletopfinder.eu/'); $firstParagraph = $diglett->getText("p:first()");
内置选择器函数
函数 | 描述 | 示例 |
---|---|---|
:containsregex(str) | 获取文本内容匹配正则表达式的元素 | div p:containsregex([Hh]el+o) |
:containstext(str) | 获取文本内容包含此子字符串的元素 | div p:containstext(Hello World) |
:first() | 获取集合中的第一个元素 | ul li:first() |
:last() | 获取集合中的最后一个元素 | ul li:last() |
:next() | 获取当前元素的第一个兄弟元素(如果存在) | ul.test:next() li |
:nth(x) | 获取集合中的第n个元素(从1开始计数) | ul li:nth(3) |
:prev() | 获取当前元素的先前兄弟元素(如果存在) | ul li:last():prev() |
:text(str) | 获取具有此innerText的元素 | ul li:text(Hello World) |