{ "info": { "author": "Howie Hu", "author_email": "xiaozizayang@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# ruia-motor\n\nA [Ruia](https://github.com/howie6879/ruia) plugin that uses the motor to store data\n\n\n```text\nNotice: Works on ruia >= 0.5.0\n```\n\n### Installation\n\n```shell\npip install -U ruia-motor\n```\n\n### Usage\n\n`ruia-motor` will be automatically store data to mongodb:\n\n```python\nfrom ruia import AttrField, Item, Spider, TextField\nfrom ruia_motor import RuiaMotor\n\n\nclass DoubanItem(Item):\n target_item = TextField(css_select='div.item')\n title = TextField(css_select='span.title')\n cover = AttrField(css_select='div.pic>a>img', attr='src')\n abstract = TextField(css_select='span.inq', default='')\n\n async def clean_title(self, title):\n if isinstance(title, str):\n return title\n else:\n return ''.join([i.text.strip().replace('\\xa0', '') for i in title])\n\n\nclass DoubanSpider(Spider):\n start_urls = ['https://movie.douban.com/top250']\n\n mongodb_config = {\n 'host': '127.0.0.1',\n 'port': 27017,\n 'db': 'ruia_motor'\n }\n\n async def parse(self, response):\n etree = response.html_etree\n pages = ['?start=0&filter='] + [i.get('href') for i in etree.cssselect('.paginator>a')]\n for index, page in enumerate(pages):\n url = self.start_urls[0] + page\n yield self.request(\n url=url,\n metadata={'index': index},\n callback=self.parse_item\n )\n\n async def parse_item(self, response):\n async for item in DoubanItem.get_items(html=response.html):\n data = item.results\n yield RuiaMotor(collection='douban250', data=data)\n\n\nasync def init_plugins_after_start(spider_ins):\n RuiaMotor.init_spider(spider_ins=spider_ins)\n\n\nif __name__ == '__main__':\n DoubanSpider.start(after_start=init_plugins_after_start)\n```\n\nEnjoy it :)\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/python-ruia/ruia-motor", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ruia-motor", "package_url": "https://pypi.org/project/ruia-motor/", "platform": "", "project_url": "https://pypi.org/project/ruia-motor/", "project_urls": { "Documentation": "https://github.com/python-ruia/ruia-motor", "Homepage": "https://github.com/python-ruia/ruia-motor", "Source": "https://github.com/python-ruia/ruia-motor" }, "release_url": "https://pypi.org/project/ruia-motor/0.0.3/", "requires_dist": [ "motor", "ruia (>=0.5.0)" ], "requires_python": "", "summary": "ruia_motor - a Ruia plugin that uses the motor to store data", "version": "0.0.3" }, "last_serial": 4822836, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c2192c727639078a2167a629b7929961", "sha256": "7c26f684fd3004c756be26e4ec7329a5bf31b2aca6222ae04c0127c969ae1c60" }, "downloads": -1, "filename": "ruia_motor-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c2192c727639078a2167a629b7929961", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5682, "upload_time": "2019-02-14T16:38:13", "url": "https://files.pythonhosted.org/packages/ec/e7/45ba884a45910f212aaee70cc0de1afa62a79557b0cb2f2328b987aa33aa/ruia_motor-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ccbeaaef10f701ce87634ea1de7ed7c", "sha256": "c46609117c59a5d43c938b7e80f7ab2e0e2981681018e4dfdbb2c291ae612f40" }, "downloads": -1, "filename": "ruia_motor-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1ccbeaaef10f701ce87634ea1de7ed7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3437, "upload_time": "2019-02-14T16:38:16", "url": "https://files.pythonhosted.org/packages/29/0b/6bb23a93a2a557a72fd2274bbd96cc734e9966e145094ea348a75855ab3c/ruia_motor-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "841ae6361b74db15cb3b47951c7723bd", "sha256": "7a6beb555958ccbf4b708c34d333469c0ea7d08fff9e9a25a1f9bfdddb59b307" }, "downloads": -1, "filename": "ruia_motor-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "841ae6361b74db15cb3b47951c7723bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5705, "upload_time": "2019-02-15T01:27:35", "url": "https://files.pythonhosted.org/packages/a2/d8/3b99ef0b28ecab5eefc2c71a482982ad5efa73e16564e4b2a68bae7c4363/ruia_motor-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "189360135cf2c62959b307d10bcdd7e4", "sha256": "346cc5d9249b9077e448d100f633628a755320a4790ae3791ac103b92734f182" }, "downloads": -1, "filename": "ruia_motor-0.0.2.tar.gz", "has_sig": false, "md5_digest": "189360135cf2c62959b307d10bcdd7e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3488, "upload_time": "2019-02-15T01:27:36", "url": "https://files.pythonhosted.org/packages/15/dc/ddb5242d1db33fa9cdad4cde828ba83c4aedcb3dbc8c0b97b6676b8f0738/ruia_motor-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "f421c9570a6195047c0487a82556f0fc", "sha256": "93e2893ef4c4584a88d105062102fd2672ce935cebf166b39b8cc4becd99c1ea" }, "downloads": -1, "filename": "ruia_motor-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f421c9570a6195047c0487a82556f0fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5710, "upload_time": "2019-02-15T01:30:47", "url": "https://files.pythonhosted.org/packages/3b/de/fa804991bbdecf7445c846e654823584bc69d1a27dc826c675ebd01eb96e/ruia_motor-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28ab7de945df0b9854321aa7d112cf68", "sha256": "ae306833e3d2c7b4849aa279c91474b5db1701297d82a92491aefb6c214e9f10" }, "downloads": -1, "filename": "ruia_motor-0.0.3.tar.gz", "has_sig": false, "md5_digest": "28ab7de945df0b9854321aa7d112cf68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3495, "upload_time": "2019-02-15T01:30:49", "url": "https://files.pythonhosted.org/packages/34/4d/bda652a119a299b4baa55c333411f42006c229c5a51760ffbcdb10ec176e/ruia_motor-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f421c9570a6195047c0487a82556f0fc", "sha256": "93e2893ef4c4584a88d105062102fd2672ce935cebf166b39b8cc4becd99c1ea" }, "downloads": -1, "filename": "ruia_motor-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f421c9570a6195047c0487a82556f0fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5710, "upload_time": "2019-02-15T01:30:47", "url": "https://files.pythonhosted.org/packages/3b/de/fa804991bbdecf7445c846e654823584bc69d1a27dc826c675ebd01eb96e/ruia_motor-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28ab7de945df0b9854321aa7d112cf68", "sha256": "ae306833e3d2c7b4849aa279c91474b5db1701297d82a92491aefb6c214e9f10" }, "downloads": -1, "filename": "ruia_motor-0.0.3.tar.gz", "has_sig": false, "md5_digest": "28ab7de945df0b9854321aa7d112cf68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3495, "upload_time": "2019-02-15T01:30:49", "url": "https://files.pythonhosted.org/packages/34/4d/bda652a119a299b4baa55c333411f42006c229c5a51760ffbcdb10ec176e/ruia_motor-0.0.3.tar.gz" } ] }