eznio / xget
XPATH-based site parsing library
v1.1
2017-10-05 12:20 UTC
Requires
- php: >=5.4.0
- eznio/ar: *
- guzzlehttp/guzzle: ^6.2
- stil/xpath-selector: ^2.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-12-20 23:59:13 UTC
README
Usage
Parse element(-s) by single query
$result = (new \eznio\xget\Xget(new \GuzzleHttp\Client())) ->setUrl('http://spb.questguild.ru/choose_city') ->parse([ 'cities' => '//ul[@class="list-check"]/li/a' ]); $cities = ['Moscow', 'Saint-Petersburg', ... ];
Parse elements with nested subqueries
A bit more difficult case.
First of all, you set root node to parse using @
array key.
Then you define elements to be parsed from the root elements using XPath-queries from the root of the parent query result.
$result = (new \eznio\xget\Xget(new \GuzzleHttp\Client())) ->setUrl('http://spb.questguild.ru/choose_city') ->parse([ 'cities' => [ '@' => '//ul[@class="list-check"]/li', 'city' => '//a', 'url' => '//a/@href' ] ]); $cities = [ [ 'name' => 'Moscow', 'url' => 'http://moscow.questguild.ru', ], [ 'name' => 'Saint-Petersburg', 'url' => 'http://spb.questguild.ru', ], . . . ];