{ "info": { "author": "Gregory Petukhov", "author_email": "lorien@lorien.name", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===\nIob\n===\n\n.. image:: https://travis-ci.org/lorien/iob.png?branch=master\n :target: https://travis-ci.org/lorien/iob\n\n.. image:: https://coveralls.io/repos/lorien/iob/badge.svg?branch=master\n :target: https://coveralls.io/r/lorien/iob?branch=master\n\n.. image:: https://pypip.in/download/iob/badge.svg?period=month\n :target: https://pypi.python.org/pypi/iob\n\n.. image:: https://pypip.in/version/iob/badge.svg\n :target: https://pypi.python.org/pypi/iob\n\n.. image:: https://landscape.io/github/lorien/iob/master/landscape.png\n :target: https://landscape.io/github/lorien/iob/master\n\nWeb scraping framework based on py3 asyncio & aiohttp libraries.\n\n\nUsage Example\n=============\n\n.. code:: python\n\n import re\n from itertools import islice\n\n from iob import Crawler, Request\n\n RE_TITLE = re.compile(r'([^<]+)', re.S | re.I)\n\n class TestCrawler(Crawler):\n def task_generator(self):\n for host in islice(open('var/domains.txt'), 100):\n host = host.strip()\n if host:\n yield Request('http://%s/' % host, tag='page')\n\n def handler_page(self, req, res):\n print('Result of request to {}'.format(req.url))\n try:\n title = RE_TITLE.search(res.body).group(1)\n except AttributeError:\n title = 'N/A'\n print('Title: {}'.format(title))\n\n bot = TestCrawler(concurrency=10)\n bot.run()\n\n\nInstallation\n============\n\n.. code:: bash\n\n pip install iob\n\n\nDependencies\n============\n\n* Python>=3.4\n* aiohttp", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "iob", "package_url": "https://pypi.org/project/iob/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/iob/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/iob/0.0.2/", "requires_dist": null, "requires_python": null, "summary": "Site Scraping Framework based on py3 asyncio", "version": "0.0.2" }, "last_serial": 1429488, "releases": { "0.0.1": [], "0.0.2": [ { "comment_text": "", "digests": { "md5": "42887a143f13d1c59f09ad8786084036", "sha256": "a86440277b1d91996c1f6c1c33a1219790962a504350adfc1f14771936bc3a77" }, "downloads": -1, "filename": "iob-0.0.2.tar.gz", "has_sig": false, "md5_digest": "42887a143f13d1c59f09ad8786084036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6660, "upload_time": "2015-02-19T07:00:29", "url": "https://files.pythonhosted.org/packages/d6/9b/4d2dadb823bdd27fe2ca45f19e33dce4d3aac3d02efa3a6087bd561bc145/iob-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "42887a143f13d1c59f09ad8786084036", "sha256": "a86440277b1d91996c1f6c1c33a1219790962a504350adfc1f14771936bc3a77" }, "downloads": -1, "filename": "iob-0.0.2.tar.gz", "has_sig": false, "md5_digest": "42887a143f13d1c59f09ad8786084036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6660, "upload_time": "2015-02-19T07:00:29", "url": "https://files.pythonhosted.org/packages/d6/9b/4d2dadb823bdd27fe2ca45f19e33dce4d3aac3d02efa3a6087bd561bc145/iob-0.0.2.tar.gz" } ] }