{ "info": { "author": "eugen1j", "author_email": "eugenij.bondar@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3.7" ], "description": "# Python async library for web scraping\n\n[![PyPI version](https://badge.fury.io/py/aioscrapy.svg)](https://badge.fury.io/py/aioscrapy)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/eugen1j/aioscrapy/blob/master/LICENSE)\n\n[![Build Status](https://travis-ci.org/eugen1j/aioscrapy.svg?branch=master)](https://travis-ci.org/eugen1j/aioscrapy)\n[![codecov](https://codecov.io/gh/eugen1j/aioscrapy/branch/master/graph/badge.svg)](https://codecov.io/gh/eugen1j/aioscrapy)\n[![codebeat badge](https://codebeat.co/badges/c494c251-c554-4f61-be57-6ca484ae7ba9)](https://codebeat.co/projects/github-com-eugen1j-aioscrapy-master) \n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/54e3d1b41bed4c9fb62e25483d1fe1eb)](https://www.codacy.com/app/eugen1j/aioscrapy?utm_source=github.com&utm_medium=referral&utm_content=eugen1j/aioscrapy&utm_campaign=Badge_Grade)\n\n## Installing\n\n pip install aioscrapy\n\n## Usage\n\nPlain text scraping\n```python\nimport asyncio\nimport json\n\nfrom aioscrapy import Client, WebTextClient, SingleSessionPool, Dispatcher, SimpleWorker\n\n\nclass CustomClient(Client[str, dict]):\n def __init__(self, client: WebTextClient):\n self._client = client\n\n async def fetch(self, key: str) -> dict:\n data = await self._client.fetch(key)\n return json.loads(data)\n\n\nasync def main():\n pool = SingleSessionPool()\n dispatcher = Dispatcher(['https://httpbin.org/get'])\n client = CustomClient(WebTextClient(pool))\n worker = SimpleWorker(dispatcher, client)\n\n result = await worker.run()\n return result\n\nloop = asyncio.get_event_loop()\nprint(loop.run_until_complete(main()))\n```\n\nByte content downloading\n```python\nimport asyncio\n\nfrom aioscrapy import Client, WebByteClient, SingleSessionPool, Dispatcher, SimpleWorker\n\n\nclass CustomClient(Client[str, bytes]):\n def __init__(self, client: WebByteClient):\n self._client = client\n\n async def fetch(self, key: str) -> bytes:\n data = await self._client.fetch(key)\n return data\n\n\nasync def main():\n pool = SingleSessionPool()\n dispatcher = Dispatcher(['https://httpbin.org/image'])\n client = CustomClient(WebByteClient(pool))\n worker = SimpleWorker(dispatcher, client)\n\n result = await worker.run()\n return result\n\nloop = asyncio.get_event_loop()\ndata: dict = loop.run_until_complete(main())\nfor url, byte_content in data.items():\n print(url + \": \" + str(len(byte_content)) + \" bytes\")\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/eugen1j/aioscrapy", "keywords": "python3 aioscrapy crawler scraper python-library", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aioscrapy", "package_url": "https://pypi.org/project/aioscrapy/", "platform": "", "project_url": "https://pypi.org/project/aioscrapy/", "project_urls": { "Homepage": "https://github.com/eugen1j/aioscrapy" }, "release_url": "https://pypi.org/project/aioscrapy/0.1.9/", "requires_dist": [ "pyfakefs", "pytest", "beautifulsoup4", "aiohttp", "pytest-asyncio", "lxml", "pytest-aiohttp" ], "requires_python": ">=3.7.0", "summary": "Python asynchronous library for web scraping", "version": "0.1.9" }, "last_serial": 5996567, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "977f1c8d1388edaaeeb540800937779c", "sha256": "c7c8e516bb80bcf8fd423d578b50f8f2a3654b5a2880952013af10a0bd9b5aa0" }, "downloads": -1, "filename": "aioscrapy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "977f1c8d1388edaaeeb540800937779c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 13873, "upload_time": "2019-05-13T14:07:40", "url": "https://files.pythonhosted.org/packages/57/01/5846049cc934f4d8ae22fcaddfa3d84d60327a99b9ac5874e4c86191f722/aioscrapy-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c92d84d41cb65c295a4389de5ce941cf", "sha256": "e04ffe5bfbbf5c5913e24852d5f1b3afc7d0af6c1aad303fcf11995bd540e47e" }, "downloads": -1, "filename": "aioscrapy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c92d84d41cb65c295a4389de5ce941cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 9855, "upload_time": "2019-05-13T15:10:51", "url": "https://files.pythonhosted.org/packages/e3/a7/af4f1a92931dcb202cb4f853a53c7d9e01dc3fe955e91a647fe745db40d2/aioscrapy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e22b9e4eb76419627d796051cf26a53", "sha256": "3d349d0301230efb86f005c5e14011ae95c43af5651dd1c8f28431ad23577c2e" }, "downloads": -1, "filename": "aioscrapy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2e22b9e4eb76419627d796051cf26a53", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 4601, "upload_time": "2019-05-13T15:10:52", "url": "https://files.pythonhosted.org/packages/b8/e0/8ac538e152510b1f97f0974f37d590f1abeabfee328424d3066ce7284ea6/aioscrapy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c43b7167a49dad76359d2127ef052ffe", "sha256": "213bf4e3b125f0d35218467328ec514bfd917513e091bac2287bf1c0a7c005f2" }, "downloads": -1, "filename": "aioscrapy-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c43b7167a49dad76359d2127ef052ffe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7261, "upload_time": "2019-05-17T15:32:15", "url": "https://files.pythonhosted.org/packages/70/5e/f50c3654e45151aeb77f718375a92c8f74fa12926ad2b86f86bf0931585e/aioscrapy-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9213ce583a4d18cccd8df059dde4c1a", "sha256": "52a5a000f4c35ce220fb4bceaabb4e37c5b994c3845fe6439b1e9a9fa2f55361" }, "downloads": -1, "filename": "aioscrapy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d9213ce583a4d18cccd8df059dde4c1a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5176, "upload_time": "2019-05-17T15:32:16", "url": "https://files.pythonhosted.org/packages/d1/88/f3ca9626c62bf601b5955b223d89a874e72b3c99d14eb7d591a1da151ab2/aioscrapy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "06f83604ca425d798520eccad6955448", "sha256": "2a814b94ce976f7bc8337555f437760f89ff60d867e515fe792a715eba9fcdc0" }, "downloads": -1, "filename": "aioscrapy-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "06f83604ca425d798520eccad6955448", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7258, "upload_time": "2019-05-17T16:24:17", "url": "https://files.pythonhosted.org/packages/8c/2e/d8afacabfd7c762c39387a177c2e288f2321946b318f859539f5462d0873/aioscrapy-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53d71890094bb1b8b6f997ca157c316b", "sha256": "23a8390f2295976ef0bd1cb433e291bf7231639682cef5f9329ba90a854ed751" }, "downloads": -1, "filename": "aioscrapy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "53d71890094bb1b8b6f997ca157c316b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5172, "upload_time": "2019-05-17T16:24:18", "url": "https://files.pythonhosted.org/packages/e4/df/fcec4429dfe84e896f60605a18b138cefd252e506238bf491f7cc19f2ea5/aioscrapy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c642ca371fcec8aa5cdb74a0381e8dd1", "sha256": "20bee9aae564205517b1de4c2f33b976e2534caa276fc4f79d577b5fc48945a8" }, "downloads": -1, "filename": "aioscrapy-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c642ca371fcec8aa5cdb74a0381e8dd1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7440, "upload_time": "2019-06-24T14:41:15", "url": "https://files.pythonhosted.org/packages/b6/5b/587bd8024b7187789c78c9a860c76fa78f3fcc16a85d31746a5988e38c63/aioscrapy-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61fce4996c3718ab034894bf471cfebe", "sha256": "e5f4c565f042652f954aebf5880c80845ebcc12d6f68aa6e612ef7106fbfd4fc" }, "downloads": -1, "filename": "aioscrapy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "61fce4996c3718ab034894bf471cfebe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5401, "upload_time": "2019-06-24T14:41:18", "url": "https://files.pythonhosted.org/packages/f8/ec/45629fd02d47fec67eb8f86fafca97ac9aed1b708e69e47d5b5a1ccb03cb/aioscrapy-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2daef438b21ef53a46f6dddbc4fd8036", "sha256": "5d5c138a10bca9a939637acefb1f022a507a3bf2154d77dcce233d8bd7c7dc8a" }, "downloads": -1, "filename": "aioscrapy-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2daef438b21ef53a46f6dddbc4fd8036", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7562, "upload_time": "2019-10-14T18:30:34", "url": "https://files.pythonhosted.org/packages/9f/30/1ce8918d7fca931344faf57cfc66fe732013cb6c4aefa0e35bd49d3d59f3/aioscrapy-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c9090171cc46c6d643c9f367e6505e9", "sha256": "42a5bf127cb52e295c65d1a430fa6c778df29812f900851a47f089b33d6f4650" }, "downloads": -1, "filename": "aioscrapy-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6c9090171cc46c6d643c9f367e6505e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5575, "upload_time": "2019-10-14T18:30:37", "url": "https://files.pythonhosted.org/packages/0c/6b/c9ddb9a105969638c24668af5ce29735ea88990e186314223358ad9a1b5f/aioscrapy-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "34824f879295c7cdd5cd34fde5c8114b", "sha256": "fca23fc43a73f72464811a6f6f03db3de98606ac715a2a6f79f912e8c35d6d8f" }, "downloads": -1, "filename": "aioscrapy-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "34824f879295c7cdd5cd34fde5c8114b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7556, "upload_time": "2019-10-14T18:53:35", "url": "https://files.pythonhosted.org/packages/39/07/648342c67d07065590b3187488a14e7dee56d47981f0f1e2981c4c7080d0/aioscrapy-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6e7757c50c51e7995845dcc2dabfc42", "sha256": "483495696e2351856d71baa0286cfdfed21aa97b9bb1782012d1744b69e3918e" }, "downloads": -1, "filename": "aioscrapy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "b6e7757c50c51e7995845dcc2dabfc42", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5452, "upload_time": "2019-10-14T18:53:40", "url": "https://files.pythonhosted.org/packages/85/1d/95c0af60f5c3ba4a56ca023c0d22ad501974cb01d4b132d140b91be21ef6/aioscrapy-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "a49b94de984a087b8b3195ec81fda7e9", "sha256": "e2fa93d5aa400690677bcd56cac33c5fdf058884946058e166850019c1f0670d" }, "downloads": -1, "filename": "aioscrapy-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a49b94de984a087b8b3195ec81fda7e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7417, "upload_time": "2019-10-16T10:56:02", "url": "https://files.pythonhosted.org/packages/98/68/a2425d10a427826b4cc37a146721da30e34b465f7382f0776efe0c85574b/aioscrapy-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f43813a97cb0c7548bc520ffb90d719a", "sha256": "4194d72f0d3f64232b0224d7cbfb8f8527136fd1b9a508473cd9688583570d70" }, "downloads": -1, "filename": "aioscrapy-0.1.7.tar.gz", "has_sig": false, "md5_digest": "f43813a97cb0c7548bc520ffb90d719a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5512, "upload_time": "2019-10-16T10:56:04", "url": "https://files.pythonhosted.org/packages/6e/d2/0ea6e54ddd42268cf307ab19c400f1ccdd0c9518b3efca6d63cfe6f1c3e3/aioscrapy-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "d55c6d060e3a1b4485d32b814f501cbe", "sha256": "4fc494b0be7c7095f49619ef655350374708d1491d09afb23ab286389b35f893" }, "downloads": -1, "filename": "aioscrapy-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d55c6d060e3a1b4485d32b814f501cbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7392, "upload_time": "2019-10-16T18:06:55", "url": "https://files.pythonhosted.org/packages/b4/0f/a0595dc3a92f443841d2266e2565a3594109f27762e870df6fad2de1442b/aioscrapy-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d45612cd83a0805b3dc053fc68c01529", "sha256": "3797a3c0a50b94d5a541acc78dd1cfa2ac3a1d740b483afd73e8934cb4fb3d5a" }, "downloads": -1, "filename": "aioscrapy-0.1.8.tar.gz", "has_sig": false, "md5_digest": "d45612cd83a0805b3dc053fc68c01529", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5500, "upload_time": "2019-10-16T18:06:58", "url": "https://files.pythonhosted.org/packages/b7/96/b8b4b97d61f5ecfadda75fb06695719a7ce94301943fc449bc60ac316b98/aioscrapy-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "9b9b6238c83a55117bddb5c6e92a0ac8", "sha256": "a916d328faa91b143fe05ec3fa0ab91a6294389ea57b1cf4c2e1b76b0db39aaf" }, "downloads": -1, "filename": "aioscrapy-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9b9b6238c83a55117bddb5c6e92a0ac8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7506, "upload_time": "2019-10-18T16:56:26", "url": "https://files.pythonhosted.org/packages/cb/9a/a2811eb9996dea85a32110f819e9bb494832393780bc8b1ba4068fb9108b/aioscrapy-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d849fb138c28274fce45dcd5e1fd454", "sha256": "77263ff7ae436bf8b00fc09937071eb8c3ed6ae8c3a442355881678bce13b195" }, "downloads": -1, "filename": "aioscrapy-0.1.9.tar.gz", "has_sig": false, "md5_digest": "7d849fb138c28274fce45dcd5e1fd454", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5660, "upload_time": "2019-10-18T16:56:33", "url": "https://files.pythonhosted.org/packages/c0/f2/cced1e6db3cb04269328dc6e2a9d653e581de66aa0f2221f417d901eaae4/aioscrapy-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9b9b6238c83a55117bddb5c6e92a0ac8", "sha256": "a916d328faa91b143fe05ec3fa0ab91a6294389ea57b1cf4c2e1b76b0db39aaf" }, "downloads": -1, "filename": "aioscrapy-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9b9b6238c83a55117bddb5c6e92a0ac8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0", "size": 7506, "upload_time": "2019-10-18T16:56:26", "url": "https://files.pythonhosted.org/packages/cb/9a/a2811eb9996dea85a32110f819e9bb494832393780bc8b1ba4068fb9108b/aioscrapy-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d849fb138c28274fce45dcd5e1fd454", "sha256": "77263ff7ae436bf8b00fc09937071eb8c3ed6ae8c3a442355881678bce13b195" }, "downloads": -1, "filename": "aioscrapy-0.1.9.tar.gz", "has_sig": false, "md5_digest": "7d849fb138c28274fce45dcd5e1fd454", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0", "size": 5660, "upload_time": "2019-10-18T16:56:33", "url": "https://files.pythonhosted.org/packages/c0/f2/cced1e6db3cb04269328dc6e2a9d653e581de66aa0f2221f417d901eaae4/aioscrapy-0.1.9.tar.gz" } ] }