Package to provide api-like access to foreign sites based on html parsing

Maintainers

👁 sleeping-owl

Package info

github.com/sleeping-owl/apist

Homepage

Language:HTML

pkg:composer/sleeping-owl/apist

Statistics

Installs: 5 313

Dependents: 1

Suggesters: 0

Stars: 309

Open Issues: 3

1.3.7 2015-03-10 08:39 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 015e6de8ebf19ed8356c9d6116f5344d7cd191a2

  • Sleeping Owl <owl.sleeping.woop@yahoo.com>

apicrawler

This package is auto-updated.

Last update: 2026-06-17 01:05:48 UTC


README

👁 Build Status
👁 Latest Stable Version
👁 Total Downloads
👁 License
👁 Code Climate

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.