{ "info": { "author": "ambrozic", "author_email": "ambrozic@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Okami\n\n[![](https://img.shields.io/badge/docs-github-blue.svg)](https://ambrozic.github.io/okami)\n[![](https://img.shields.io/pypi/pyversions/okami.svg)](https://pypi.python.org/pypi/okami)\n[![](https://img.shields.io/pypi/v/okami.svg)](https://pypi.python.org/pypi/okami)\n[![](https://img.shields.io/pypi/wheel/okami.svg)](https://pypi.python.org/pypi/okami)\n[![](https://travis-ci.org/ambrozic/okami.svg?branch=master)](https://travis-ci.org/ambrozic/okami)\n[![](https://codecov.io/github/ambrozic/okami/coverage.svg?branch=master)](https://codecov.io/github/ambrozic/okami)\n[![](https://img.shields.io/pypi/l/okami.svg)](https://pypi.python.org/pypi/okami)\n\nOkami is a high-level web scraping framework built entirely for Python 3.6+ using asynchronous model provided by standard library [asyncio](https://docs.python.org/3/library/asyncio.html) module with [aiohttp](https://docs.aiohttp.org) as a networking layer and [lxml](http://lxml.de) for parsing data.\n\nArchitecture is entirely modular and main components can be swapped out and replaced with custom implementations.\n\n## Features\n\n- complete website-wide page processing\n- full scraping mode or delta mode scraping only unvisited pages\n- immediate, on-demand or real-time page processing over HTTP API\n- single page processing via command line\n- lots of pipelines, middlewares and signals\n\nSpiders are very simple implementations. Take a look at an example [here](https://github.com/ambrozic/okami/blob/master/okami/example.py#L14-L53).\n\n\n## Quick start\n\n- Install okami\n\n - `pip install okami`\n\n- Run example web server\n\n - `OKAMI_SETTINGS=okami.cfg.example okami example server`\n\nOpen [localhost:8000](http://localhost:8000) and browse around a little. Quite a remarkable website. We will run our example spider against this website shortly and process few items.\n\n- Run example spider\n\n - `OKAMI_SETTINGS=okami.cfg.example okami example spider`\n\nOur example spider started and you can see it processing pages. Take a look at an example spider implementation [here](https://github.com/ambrozic/okami/blob/master/okami/example.py#L14-L53).\n\n\n## Documentation\n\nRead the rest of documentation [here](https://ambrozic.github.io/okami).\n\n\n## License\n\nOkami is licensed under a three clause BSD License. Full license text can be found [here](https://github.com/ambrozic/okami/blob/master/license).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ambrozic/okami", "keywords": "scraping framework", "license": "BSD", "maintainer": "ambrozic", "maintainer_email": "ambrozic@gmail.com", "name": "okami", "package_url": "https://pypi.org/project/okami/", "platform": "", "project_url": "https://pypi.org/project/okami/", "project_urls": { "Code": "https://github.com/ambrozic/okami", "Documentation": "https://ambrozic.github.io/okami", "Homepage": "https://github.com/ambrozic/okami" }, "release_url": "https://pypi.org/project/okami/0.2.0/", "requires_dist": [ "aiohttp (<4.0,>=3.2.0)", "attrs (<19.0,>=18.1.0)", "click (<7.0,>=6.0)", "lxml (<5.0,>=4.0)", "multidict (<5.0,>=4.0)", "sqlitedict (<1.6,>=1.5)", "mkdocs-material (==3.0.3); extra == 'docs'", "mkdocs (==1.0.1); extra == 'docs'", "pygments (==2.2.0); extra == 'docs'", "pymdown-extensions (==4.12); extra == 'docs'", "codecov (==2.0.15); extra == 'tests'", "flake8 (==3.5.0); extra == 'tests'", "markupsafe (==1.0); extra == 'tests'", "pipdeptree (==0.13.0); extra == 'tests'", "pytest-asyncio (==0.9.0); extra == 'tests'", "pytest-cov (==2.5.1); extra == 'tests'", "pytest-freezegun (==0.2.0); extra == 'tests'", "pytest (==3.7.1); extra == 'tests'", "pyyaml (==3.13); extra == 'tests'" ], "requires_python": ">=3.6", "summary": "A high-level web scraping framework", "version": "0.2.0" }, "last_serial": 4183183, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0e2c368e1a50527b7e42e7b6e45dcd09", "sha256": "71ff1a7cafbb04c63d3e24d511d47efab6b337cbab77a52a235d0efeb258c1b8" }, "downloads": -1, "filename": "okami-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0e2c368e1a50527b7e42e7b6e45dcd09", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27375, "upload_time": "2017-01-07T16:57:13", "url": "https://files.pythonhosted.org/packages/33/9e/cf9ffc95615b5ae89d07adbf0d476141ac29b3dd778d40059581ebaebac1/okami-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6f3813298e1d5a2ece0f38f28101afe9", "sha256": "e9a5eeb2e8e284bccc643ec80ac55ea44e194efaf38f0cc52b51c6ab9252ac39" }, "downloads": -1, "filename": "okami-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f3813298e1d5a2ece0f38f28101afe9", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27379, "upload_time": "2017-01-20T19:15:32", "url": "https://files.pythonhosted.org/packages/51/6a/7bc5989c683b4eda1bc3a9869a089e76d7f058fddc60a501ec969206b94c/okami-0.1.1-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "60ae94154b948f71d0f1aacf56519045", "sha256": "41d2cb04095ffb8dfc503e2d6633efbcbd9f65d5cb93328392d867abfa7cb6e8" }, "downloads": -1, "filename": "okami-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "60ae94154b948f71d0f1aacf56519045", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27312, "upload_time": "2017-02-15T18:39:28", "url": "https://files.pythonhosted.org/packages/c3/8d/12617af13be74673c4a4229d91b9e3aebb90d7d3ab9776daece4a7f7028c/okami-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b2d43e5c6568e5b9ba3c5ad606b17e96", "sha256": "c8fb5e5f32acaa0922e42c30ab7cce50e4122c336f3d83ed9e576b223d2eb914" }, "downloads": -1, "filename": "okami-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b2d43e5c6568e5b9ba3c5ad606b17e96", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 27315, "upload_time": "2017-02-15T18:50:46", "url": "https://files.pythonhosted.org/packages/2a/19/1a16c4fb2daf3513b7e1f3a69ea19e311f113d1cf410d850dc4894189554/okami-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ad061686b1a0ec64c3f74550318cdea1", "sha256": "e9ba10e5444b6f3e593ad4aba10f043f379c99fa2444140a72156fdaa0de2604" }, "downloads": -1, "filename": "okami-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ad061686b1a0ec64c3f74550318cdea1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 28416, "upload_time": "2017-03-04T14:20:23", "url": "https://files.pythonhosted.org/packages/c5/aa/a688fd40875382cc36caa274eade641631d1d6459b0e5e431ab80951a845/okami-0.1.4-py2.py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "9f209e51de33a408a7f39af823fa8ebc", "sha256": "8c13c269f602d42cb583b4128d31a460d1ed839b0f51f35590b1f46aa12271ce" }, "downloads": -1, "filename": "okami-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9f209e51de33a408a7f39af823fa8ebc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 28393, "upload_time": "2017-03-27T13:53:55", "url": "https://files.pythonhosted.org/packages/8a/a5/fc30a356dd0b92f008c4d02a007700b8963ef2495f5b20218e95fe0e9602/okami-0.1.5-py2.py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f12a6de30e84e10ccafae796341a666d", "sha256": "a9424280a8d0208e4d95eebd0b32f892cec9cd83733cb3e929e1cb39140c8331" }, "downloads": -1, "filename": "okami-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f12a6de30e84e10ccafae796341a666d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 25089, "upload_time": "2018-08-18T14:13:31", "url": "https://files.pythonhosted.org/packages/c0/9b/a7106c4c24ff27029bbfb87769120b18711834114773ae7cc478dc932d36/okami-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d154ea382a17ccab8c84be5df874be2c", "sha256": "887339537339a04c33700cd37ad6490c5e43d8e081865c28b47b7c1e0b71b2f2" }, "downloads": -1, "filename": "okami-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d154ea382a17ccab8c84be5df874be2c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20470, "upload_time": "2018-08-18T14:13:32", "url": "https://files.pythonhosted.org/packages/0a/bd/e75a8a747f7e829c3c9d7e1b43d626118b62a6c1e9c52c330e0f449a9d65/okami-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f12a6de30e84e10ccafae796341a666d", "sha256": "a9424280a8d0208e4d95eebd0b32f892cec9cd83733cb3e929e1cb39140c8331" }, "downloads": -1, "filename": "okami-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f12a6de30e84e10ccafae796341a666d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 25089, "upload_time": "2018-08-18T14:13:31", "url": "https://files.pythonhosted.org/packages/c0/9b/a7106c4c24ff27029bbfb87769120b18711834114773ae7cc478dc932d36/okami-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d154ea382a17ccab8c84be5df874be2c", "sha256": "887339537339a04c33700cd37ad6490c5e43d8e081865c28b47b7c1e0b71b2f2" }, "downloads": -1, "filename": "okami-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d154ea382a17ccab8c84be5df874be2c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20470, "upload_time": "2018-08-18T14:13:32", "url": "https://files.pythonhosted.org/packages/0a/bd/e75a8a747f7e829c3c9d7e1b43d626118b62a6c1e9c52c330e0f449a9d65/okami-0.2.0.tar.gz" } ] }