{
"info": {
"author": "barriery",
"author_email": "barriery@qq.com",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3"
],
"description": "showtime\n========\n\n|Python version| |release| |PyPI|\n\nLife is generally simple and boring for science and engineering students\nwho keep running between dormitory, laboratory and teaching building. In\norder to add some **cultural presence** on the life, showtime is\ndesigned, which is a tool based on network spider technology to crawl\ninformation for numerous shows such as dramas and concerts.\n\nFeature\n-------\n\n- Support multiple types of information sources\n\n 1. website source:\n\n - \u2612 `China Ticket `__\n\n - \u2612 `Beihang Sunrise Concert Hall `__\n\n - \u2610 `\u6c38\u4e50\u7968\u52a1 `__\n\n - \u2612 `PKU Hall `__\n\n - \u2612 `MengJingHui website `__\n\n - \u2610\n `\u5317\u4eac\u56fd\u9645\u9752\u5e74\u620f\u5267\u8282 `__\n\n 2. APP source:\n\n - \u2610 \u5927\u9ea6\n\n 3. applet source:\n\n - \u2610 \u97f3\u4e50\u8282RSS\n\n- Stand-alone parallel support\n\n When the program is executing, several processes will be launched.\n Each process processes one data source, and at the same time use of\n multiple threads to handle multiple requests in a process. For some\n exceptional sources(such as ``MengJingHuiWebsite``), more\n fine-grained coroutines is implemented.\n\n- Simple local storage and loading capabilities by using protobuf\n\n .. code:: protobuf\n\n syntax = \"proto3\";\n\n message ShowList {\n string source = 1;\n repeated Show shows = 2;\n }\n\n message Show {\n string name = 1;\n string url = 2;\n repeated Event events = 3;\n map extra_fields = 4;\n }\n\n message Event {\n string date = 1; // YYYY-mm-dd\n string time = 2; // HH:MM\n string url = 3; // http-url or https-url\n string city = 4; // 34\u4e2a\u7701\u7ea7\u884c\u653f\u533a\u57df\u4ee5\u53ca\u4e00\u7ebf\uff0c\u65b0\u4e00\u7ebf\u548c\u4e8c\u7ebf\u57ce\u5e02\uff0c\u4e0d\u5e26'\u7701'\u548c'\u5e02'\u7b49\u540e\u7f00\uff0c2-3\u4e2a\u5b57\n string address = 5;\n Price prices = 6;\n map extra_fields = 7;\n }\n\n message Price {\n repeated float in_sale = 1;\n repeated float sold_out = 2;\n }\n\nRequirements\n------------\n\nPython3.5+\n\nInstallation\n------------\n\n- Install with pip\n\n .. code:: bash\n\n pip install show-time\n\n- Install from source\n\n .. code:: bash\n\n pip install wheel\n python setup.py bdist_wheel\n pip install dist/show-time-0.0.5-py3-none-any.whl\n\nUsage\n-----\n\n.. code:: python\n\n import os\n import logging\n import showtime\n from showtime.showspider_factory import ShowSpiderFactory\n\n def print_info(show_list, rough=True):\n for show in show_list:\n print(show)\n if rough:\n continue\n for e in show:\n print(e)\n\n def load_file(filename):\n return showtime.show_type.ShowList.load(filename)\n\n if __name__ == '__main__':\n logging.basicConfig(level=logging.INFO)\n\n data_path = 'data'\n if not os.path.exists(data_path):\n os.makedirs(data_path)\n\n # \u83b7\u53d6showspider\u7684\u5de5\u5382\u5b9e\u4f8b\n spider_factory = ShowSpiderFactory()\n\n # \u83b7\u53d6\u76ee\u524d\u5df2\u7ecf\u652f\u6301\u7684\u8d44\u6e90\u5217\u8868\n support_sources = spider_factory.support_sources()\n\n # \u591a\u8fdb\u7a0b\u83b7\u53d6\u6240\u6709\u8d44\u6e90\u5bf9\u5e94spider\u7684show_list\uff0c\u540c\u65f6\u5728\u6bcf\u4e2aspider\u5185\u90e8\u5f00\u7ebf\u7a0b\u6c60\n total_show_list = spider_factory.get_total_show_list(support_sources, is_parallel=True)\n\n for show_list in total_show_list:\n # \u5c06\u7ed3\u679c\u5b58\u50a8\u5230\u672c\u5730\n show_list.save('%s/%s.data' % (data_path, show_list.source))\n\nIssue\n-----\n\nIf you encounter problems, please describe the problem recurrence\nprocess in issue.\n\nTODO\n----\n\n1. \u4e3a\u4e86\u9879\u76ee\u7684\u53ef\u6301\u7eed\u53d1\u5c55\uff0c\u9700\u8981\u5c3d\u5feb\u5b8c\u5584\u6ce8\u91ca\u548c\u6587\u6863\uff08\u8d44\u6e90\u79cd\u7c7b\u592a\u591a\uff0c\u4e14\u6bcf\u79cd\u8d44\u6e90\u7684\u4e00\u4e9b\u8bbe\u5b9a\u8fd8\u662f\u5f02\u6784\u7684\uff09\u3002\n2. \u652f\u6301\u5c1a\u672a\u652f\u6301\u7684Web\u4fe1\u606f\u6765\u6e90\n3. \u9891\u7e41\u722c\u53d6\u6570\u636e\uff0c\u670d\u52a1\u5668\u62d2\u7edd\u8bbf\u95ee&&\u5076\u5c14\u4f1a\u5d29\n4. \u601d\u8003AppSpider\u7684\u57fa\u7c7b\u67b6\u6784\n5. \u601d\u8003AppletSpider\u7684\u57fa\u7c7b\u67b6\u6784\n6. \u652f\u6301\u5317\u822a\u6668\u5174\u97f3\u4e50\u5385\u7684\u7ebf\u4e0a\u9884\u5b9a\n\n.. |Python version| image:: https://img.shields.io/badge/Python-3.5+-brightgreen.svg\n :target: https://github.com/barrierye/showtime#requirements\n.. |release| image:: https://img.shields.io/github/v/tag/barrierye/showtime?label=release\n :target: https://github.com/barrierye/showtime/releases\n.. |PyPI| image:: https://img.shields.io/pypi/v/show-time\n :target: https://pypi.org/project/show-time/#files\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/barrierye/showtime",
"keywords": "show spider",
"license": "MIT",
"maintainer": "barriery",
"maintainer_email": "barriery@qq.com",
"name": "show-time",
"package_url": "https://pypi.org/project/show-time/",
"platform": "",
"project_url": "https://pypi.org/project/show-time/",
"project_urls": {
"Homepage": "https://github.com/barrierye/showtime"
},
"release_url": "https://pypi.org/project/show-time/0.0.5/",
"requires_dist": [
"beautifulsoup4 (==4.8.1)",
"lxml (==4.4.1)",
"aiohttp (==3.6.2)",
"requests (==2.22.0)",
"protobuf (==3.10.0)"
],
"requires_python": ">=3.5",
"summary": "A tool based on network spider technology to crawl information for numerous shows such as dramas and concerts.",
"version": "0.0.5",
"yanked": false,
"yanked_reason": null
},
"last_serial": 6161382,
"releases": {
"0.0.0": [
{
"comment_text": "",
"digests": {
"md5": "0d1e52bccd28e91a90c8ce5c8b904425",
"sha256": "875791be183e4d811f13cdadca5b95387c942cf48ef5f39471b7298999bc5637"
},
"downloads": -1,
"filename": "show-time-0.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0d1e52bccd28e91a90c8ce5c8b904425",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12837,
"upload_time": "2019-10-25T06:45:30",
"upload_time_iso_8601": "2019-10-25T06:45:30.440444Z",
"url": "https://files.pythonhosted.org/packages/3c/1e/0fa6150ba97b2422f8c904346c3190f06aa5034e736028adb0fcdb17e8df/show-time-0.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "9f06bb517867eae67fca2f30f0f06b0d",
"sha256": "fd778617318b9289a56dae3e1e0880fdfb41db145ad70580d52c2e8f7bb590f7"
},
"downloads": -1,
"filename": "show-time-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "9f06bb517867eae67fca2f30f0f06b0d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14263,
"upload_time": "2019-10-25T15:31:09",
"upload_time_iso_8601": "2019-10-25T15:31:09.458378Z",
"url": "https://files.pythonhosted.org/packages/9b/9d/b5b94f62c81371b9fc31e88fa6791233f2fd5fe7d574e44a7f58a277375e/show-time-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "faf0416ee11cd39e05a48da57ab4cd78",
"sha256": "680a65ea328231e6af0d6218e0f37e08dc86efbd02f0ecf4ae42878723b8c3ea"
},
"downloads": -1,
"filename": "show-time-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "faf0416ee11cd39e05a48da57ab4cd78",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15140,
"upload_time": "2019-10-26T12:06:15",
"upload_time_iso_8601": "2019-10-26T12:06:15.534998Z",
"url": "https://files.pythonhosted.org/packages/ae/7a/3096ab2ad2aca46ccf1a5041b74d99c98d8cee73e7481cbb428c7397610e/show-time-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "98578c4454555b1410e3486fe25a8ed9",
"sha256": "e5c898a7a0320d0e1254bcdbd71f926499767ff38f521e0942af560846ba30ac"
},
"downloads": -1,
"filename": "show-time-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "98578c4454555b1410e3486fe25a8ed9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16134,
"upload_time": "2019-10-29T10:18:26",
"upload_time_iso_8601": "2019-10-29T10:18:26.463404Z",
"url": "https://files.pythonhosted.org/packages/91/16/7e2d6a55194aa8b27cb7b6647cace3ab8941870c551656fb5693671af10f/show-time-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "c25de2499bc3f20181a8d62234706f53",
"sha256": "7250455325143e368e8acc05f633f73c49dce22f85a32fd698363f24004a9209"
},
"downloads": -1,
"filename": "show-time-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "c25de2499bc3f20181a8d62234706f53",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16113,
"upload_time": "2019-11-15T06:31:20",
"upload_time_iso_8601": "2019-11-15T06:31:20.554423Z",
"url": "https://files.pythonhosted.org/packages/41/d8/1387ea830961628d639f56ae77dbf609411c14fc3facf5f4a9728d1a6c52/show-time-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "152d9057d3372898be899d1c0cc14971",
"sha256": "8823a0889b777dd17e3376fded74b9502ebafd463581cd6f8345ac5bb72cc30c"
},
"downloads": -1,
"filename": "show_time-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "152d9057d3372898be899d1c0cc14971",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 18581,
"upload_time": "2019-11-19T11:46:31",
"upload_time_iso_8601": "2019-11-19T11:46:31.924790Z",
"url": "https://files.pythonhosted.org/packages/da/0d/49bb634cb1d193e2c818fb4c494a38e06773c2ff9aca805818486d7c458a/show_time-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "5076cdfa72e5f64c7cc6a7b903cd700c",
"sha256": "2984fe500e3977b8a53271a0393bfd09a5691e02906db17588d21bdd5924781a"
},
"downloads": -1,
"filename": "show-time-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "5076cdfa72e5f64c7cc6a7b903cd700c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 16124,
"upload_time": "2019-11-19T11:46:34",
"upload_time_iso_8601": "2019-11-19T11:46:34.771239Z",
"url": "https://files.pythonhosted.org/packages/a3/06/708b50a4b9502647730dfa72a33540d718301bdd9e45caad1b97bc71e3eb/show-time-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "152d9057d3372898be899d1c0cc14971",
"sha256": "8823a0889b777dd17e3376fded74b9502ebafd463581cd6f8345ac5bb72cc30c"
},
"downloads": -1,
"filename": "show_time-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "152d9057d3372898be899d1c0cc14971",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 18581,
"upload_time": "2019-11-19T11:46:31",
"upload_time_iso_8601": "2019-11-19T11:46:31.924790Z",
"url": "https://files.pythonhosted.org/packages/da/0d/49bb634cb1d193e2c818fb4c494a38e06773c2ff9aca805818486d7c458a/show_time-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "5076cdfa72e5f64c7cc6a7b903cd700c",
"sha256": "2984fe500e3977b8a53271a0393bfd09a5691e02906db17588d21bdd5924781a"
},
"downloads": -1,
"filename": "show-time-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "5076cdfa72e5f64c7cc6a7b903cd700c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 16124,
"upload_time": "2019-11-19T11:46:34",
"upload_time_iso_8601": "2019-11-19T11:46:34.771239Z",
"url": "https://files.pythonhosted.org/packages/a3/06/708b50a4b9502647730dfa72a33540d718301bdd9e45caad1b97bc71e3eb/show-time-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}