sleeping-owl / apist
Package to provide api-like access to foreign sites based on html parsing
Installs: 5 129
Dependents: 1
Suggesters: 0
Security: 0
Stars: 309
Watchers: 20
Forks: 41
Open Issues: 3
Language:HTML
pkg:composer/sleeping-owl/apist
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: 5.*
- symfony/css-selector: ~2.0
- symfony/dom-crawler: ~2.0
- symfony/yaml: ~2.0
Requires (Dev)
- mockery/mockery: 0.*
- phpunit/phpunit: 4.*
README
SleepingOwl Apist is a small library which allows you to access any site in api-like style, based on html parsing.
Overview
This package allows you to write method like this:
class WikiApi extends Apist { public function getBaseUrl() { return 'http://en.wikipedia.org'; } public function index() { return $this->get('/wiki/Main_Page', [ 'welcome_message' => Apist::filter('#mp-topbanner div:first')->text()->mb_substr(0, -1), 'portals' => Apist::filter('a[title^="Portal:"]')->each([ 'link' => Apist::current()->attr('href')->call(function ($href) { return $this->getBaseUrl() . $href; }), 'label' => Apist::current()->text() ]), 'languages' => Apist::filter('#p-lang li a[title]')->each([ 'label' => Apist::current()->text(), 'lang' => Apist::current()->attr('title'), 'link' => Apist::current()->attr('href')->call(function ($href) { return 'http:' . $href; }) ]), 'sister_projects' => Apist::filter('#mp-sister b a')->each()->text(), 'featured_article' => Apist::filter('#mp-tfa')->html() ]); } }
and get the following result:
{
"welcome_message": "Welcome to Wikipedia",
"portals": [
{
"link": "http:\/\/en.wikipedia.org\/wiki\/Portal:Arts",
"label": "Arts"
},
{
"link": "http:\/\/en.wikipedia.org\/wiki\/Portal:Biography",
"label": "Biography"
},
...
],
"languages": [
{
"label": "Simple English",
"lang": "Simple English",
"link": "http:\/\/simple.wikipedia.org\/wiki\/"
},
{
"label": "العربية",
"lang": "Arabic",
"link": "http:\/\/ar.wikipedia.org\/wiki\/"
},
{
"label": "Bahasa Indonesia",
"lang": "Indonesian",
"link": "http:\/\/id.wikipedia.org\/wiki\/"
},
...
],
"sister_projects": [
"Commons",
"MediaWiki",
...
],
"featured_article": "<div style=\"float: left; margin: 0.5em 0.9em 0.4em 0em;\">...<\/div>"
}
Installation
Require this package in your composer.json and run composer update (or run composer require sleeping-owl/apist:1.x directly):
"sleeping-owl/apist": "1.*"
Documentation
Documentation can be found at sleeping owl apist.
Examples
View examples.
Support Library
You can donate via PayPal, Yandex money (410012943296949) or in BTC: 13k36pym383rEmsBSLyWfT3TxCQMN2Lekd
Copyright and License
Apist was written by Sleeping Owl and is released under the MIT License. See the LICENSE file for details.