{ "info": { "author": "Simon Rochwerg", "author_email": "simon.rochwerg@lobstr.io", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "shadow-useragent\n==============\n\n`shadow-useragent` gives you access to the most commonly used UserAgents on the Internet, safe from outdated data.\n\nBehold, the power of UserAgent: \n```python3\n>>> import shadow_useragent\n>>> ua = shadow_useragent.ShadowUserAgent()\n>>> ua.percent(0.05)\n'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Safari/605.1.15'\n>>> ua.most_common\n'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'\n```\n\nWhen you use our library, we register your User Agent, and update the frequency of use. The percent of use is thus dynamically updated, and never outdated. No more unused header that reveals your true identity, you are protected by the group.\n\nBesides, you can rely on traditional features, like picking an header from outstanding IE browser family.\n\n\nFeature Support\n------------\n\n`shadow-useragent` is the only safe, and updated user-agent package.\n\n* UserAgent Percentage of Use\n* Day-to-day Update\n* Exhaustive UserAgents Family\n* Elegant @property Methods\n* Community-Based Package\n\n`shadow-useragent` supports Python 2.7 & 3.4\u20133.7, and runs great on PyPy.\n\nInstallation\n------------\n\nTo install `shadow-useragent`, simply use pipenv (or pip, of course):\n\n```shell\n$ pip install shadow-useragent\n\ud83d\udc7b \n```\n\nNever disappointed.\n\nDocumentation\n-----\nDocumentation is not available for now. Unlimited delivery coming soon.\n\n\nUsage\n-----\n```python3\n\nimport shadow_useragent \nua = shadow_useragent.ShadowUserAgent()\n\n# Access user-agent per Percentage of Use\nua = ua.percent(0.03) \nua = ua.most_common\n\n# Access user-agent per Browser Family\nua = ua.firefox \nua = ua.chrome \nua = ua.safari \nua = ua.edge \nua = ua.ie\nua = ua.android\nua = ua.ipad\n\n# Random Access ;)\nua = ua.random\nua = ua.random_nomobile # Mobile-UA excluded\n\n# If you want an Exhaustive list, you can play with\nuas = ua.get_uas()\nuas = ua.get_sorted_uas() # Sorted List per Percentage of Use\n\n>>> uas[0]\n{\n 'id':1,\n 'scraping_time':'2019-07-31T17:05:15Z',\n 'percent':9.6,\n 'useragent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',\n 'system':'Chrome 75.0 Win10',\n 'browser_family':'Chrome',\n 'browser_version_string':'75.0.3770',\n 'os_family':'Windows',\n 'os_version_string':'10',\n 'device_family':'Other',\n 'device_brand':None,\n 'device_model':None\n}\n```\n\nNotes\n-----\n\n`shadow-useragent` stores collected UAs in the folder of your pip packages: site-packages/shadow_useragent/data.\n\nThe UserAgents' list is automatically updated with a shadow call (mm) to the shadow-useragent API every 24 hours. \nIf you want to force the update :\n\n```python3\nfrom shadow_useragent import ShadowUserAgent\nshadow_useragent = ShadowUserAgent()\nshadow_useragent.force_update()\n```\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/Lobstrio/shadow-useragent", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "shadow-useragent", "package_url": "https://pypi.org/project/shadow-useragent/", "platform": "", "project_url": "https://pypi.org/project/shadow-useragent/", "project_urls": { "Homepage": "https://github.com/Lobstrio/shadow-useragent" }, "release_url": "https://pypi.org/project/shadow-useragent/0.0.17/", "requires_dist": [ "requests", "pytz", "coloredlogs" ], "requires_python": "", "summary": "Always get best user-agent", "version": "0.0.17" }, "last_serial": 5766997, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "7cf8faeacf60d16fc31a13ad10672f07", "sha256": "e8d36bef35f841690e0662615faf7f09dd22de4caae7f8f0065fda318ecdaeb2" }, "downloads": -1, "filename": "shadow_useragent-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "7cf8faeacf60d16fc31a13ad10672f07", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11132, "upload_time": "2019-08-08T00:14:47", "url": "https://files.pythonhosted.org/packages/c7/a8/3c6e62372807fd8008f4517bbb29216a404c5f3466d1803e8b02b4c86ddc/shadow_useragent-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21edc1c7edaa43f2c58898dc0255015b", "sha256": "4293b4a2b67cb43bee83b0f0351e3c4aa26a465201fb450bd3824dcbd3763f88" }, "downloads": -1, "filename": "shadow-useragent-0.0.10.tar.gz", "has_sig": false, "md5_digest": "21edc1c7edaa43f2c58898dc0255015b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10683, "upload_time": "2019-08-08T00:14:49", "url": "https://files.pythonhosted.org/packages/8d/ce/7b2f3430785fe6e9f5fe763068c924e32751f57a52c3053c6b4b1cc01a08/shadow-useragent-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "4c2367166b9a1df49f19fc4412f23170", "sha256": "087826c209627e9a70b546450af6e1539d23724f575e3ad2dc9f304e4f66e5c3" }, "downloads": -1, "filename": "shadow_useragent-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "4c2367166b9a1df49f19fc4412f23170", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11170, "upload_time": "2019-08-08T00:17:50", "url": "https://files.pythonhosted.org/packages/1e/d3/0416cd5acbbd8454c2133ade8b7abea4ff96e75e54167ebeae8ac7d925ef/shadow_useragent-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d91ce764fa7ee3853ce0887f18c9d0d1", "sha256": "66d805b6eec59df3e0f30de9e38f09a2a7b6dc825dff6d101010b6bed4494a02" }, "downloads": -1, "filename": "shadow-useragent-0.0.11.tar.gz", "has_sig": false, "md5_digest": "d91ce764fa7ee3853ce0887f18c9d0d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10765, "upload_time": "2019-08-08T00:17:52", "url": "https://files.pythonhosted.org/packages/fb/67/fd0661af36ca6cb60fbdd1f940444cc56b24488d8b728ab22a055dfa5afc/shadow-useragent-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "0c274f1fccd53586a27f275cb174b56f", "sha256": "60ca52686b9a561989a7c536eb6b1175d826d0bf689e063fe36ba9bcf57a973b" }, "downloads": -1, "filename": "shadow_useragent-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "0c274f1fccd53586a27f275cb174b56f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11178, "upload_time": "2019-08-21T15:48:04", "url": "https://files.pythonhosted.org/packages/1f/15/7416270982900898acd753e6b117f16d07e2da77a7e6d97d0bc75a2009b1/shadow_useragent-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73a441a8a07c21f82bf2ed5832385e3b", "sha256": "116f82ebbb6fcc67a442a4a2b9f4aeeebc911193b1d130510fb6796d31db60b9" }, "downloads": -1, "filename": "shadow-useragent-0.0.12.tar.gz", "has_sig": false, "md5_digest": "73a441a8a07c21f82bf2ed5832385e3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10995, "upload_time": "2019-08-21T15:48:06", "url": "https://files.pythonhosted.org/packages/f8/1a/f931f932e89cc229c0723e8ef152e9fa4a069019f3bac308d5a66fae3ac7/shadow-useragent-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "2dfb2cb72c79989139a6c791556a1fb3", "sha256": "3100266c73f0e91ac03d58f096a72dfc173ea0d3f98a8e678fe548956ee62a5f" }, "downloads": -1, "filename": "shadow_useragent-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "2dfb2cb72c79989139a6c791556a1fb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11175, "upload_time": "2019-08-26T12:18:01", "url": "https://files.pythonhosted.org/packages/41/02/93e84ccdba32de8544e27b1f72f55cdaa4fc0d653b95cf4124f944cab8db/shadow_useragent-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13f1d036b7d4f0cdc883938720583661", "sha256": "d6ca4b3ee829ae389d5d402c19b39e10629d057df198962846f5ebe7d26d7539" }, "downloads": -1, "filename": "shadow-useragent-0.0.13.tar.gz", "has_sig": false, "md5_digest": "13f1d036b7d4f0cdc883938720583661", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11002, "upload_time": "2019-08-26T12:18:02", "url": "https://files.pythonhosted.org/packages/d4/2e/9873d327053ab20a45526aa8a07ac425b070968fba103a351016c017d994/shadow-useragent-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "cae4ea991edbd98d900e1dd17d882c72", "sha256": "f5c443dc6c5d4d3e52c4eaf73925438bef1f0bb834aa3b47feec2f574549e898" }, "downloads": -1, "filename": "shadow_useragent-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "cae4ea991edbd98d900e1dd17d882c72", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11163, "upload_time": "2019-08-28T13:28:37", "url": "https://files.pythonhosted.org/packages/8c/fa/920772d6ca22ba16d928091bd0d29120a114a56ef8d80d31cf0eae047f10/shadow_useragent-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "483f854b588a890fd827154f5e07b52c", "sha256": "1176f4b4e86010b061c3a5d9f8cfde8015befade68bf8cdea7060b8e33dfa0df" }, "downloads": -1, "filename": "shadow-useragent-0.0.14.tar.gz", "has_sig": false, "md5_digest": "483f854b588a890fd827154f5e07b52c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10971, "upload_time": "2019-08-28T13:28:38", "url": "https://files.pythonhosted.org/packages/42/9e/18b50012944146f3c7776ba7b197c70bd51831bd80da8e5611a49a1a1bb0/shadow-useragent-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "c2ed63285f73f824c5a57cf1413c6732", "sha256": "f29b6b60830e55142ec8573862cd221d08adfc2d20a71477dc34462401ada9fd" }, "downloads": -1, "filename": "shadow_useragent-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "c2ed63285f73f824c5a57cf1413c6732", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11166, "upload_time": "2019-08-28T17:15:57", "url": "https://files.pythonhosted.org/packages/e6/49/8f3225afa7d8b6a7eaabf7e8434968b8a811a919e07f3f4cc83971424acb/shadow_useragent-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b67e51feb68a601ee99210b5bcf4e308", "sha256": "a476080471ba5def54d87fcc62fbf3c00b30e21add84a5d1dc40fd65742bc167" }, "downloads": -1, "filename": "shadow-useragent-0.0.15.tar.gz", "has_sig": false, "md5_digest": "b67e51feb68a601ee99210b5bcf4e308", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10974, "upload_time": "2019-08-28T17:15:58", "url": "https://files.pythonhosted.org/packages/64/19/710ae482748315b3e8540c8a9ea2d82bf5f763805bc0a6cc37f43e8b8121/shadow-useragent-0.0.15.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "a4b37da15c8a6698250e90e31a2bed0a", "sha256": "3061970e45587528516ed0c3f9919bcc8a6d38eadeb4b0388c56984e7c98f77d" }, "downloads": -1, "filename": "shadow_useragent-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "a4b37da15c8a6698250e90e31a2bed0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11168, "upload_time": "2019-09-01T13:37:35", "url": "https://files.pythonhosted.org/packages/2c/e0/c63f4a73e5a2832c1ec1475e6e23d2be136dfda409863fa5fc70c3c3707d/shadow_useragent-0.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc5fecd6d4427e838e75139e13b31540", "sha256": "ace3f53c0ec697b36eb35bb04ccc04d4727bf924edd5bf7caad78b64d272d755" }, "downloads": -1, "filename": "shadow-useragent-0.0.17.tar.gz", "has_sig": false, "md5_digest": "cc5fecd6d4427e838e75139e13b31540", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10976, "upload_time": "2019-09-01T13:37:36", "url": "https://files.pythonhosted.org/packages/21/73/11d4b946093ea19ca23b4fdb222778faba6bfbe018d1c93700ca5bc06eb5/shadow-useragent-0.0.17.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "51cd48b3d8375c836aeba230b379613b", "sha256": "7bfcd2f31fc4dbc6cb24db10ebe7999e88d66383c95294fc0fba132c94986a0b" }, "downloads": -1, "filename": "shadow_useragent-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "51cd48b3d8375c836aeba230b379613b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9725, "upload_time": "2019-08-07T18:14:28", "url": "https://files.pythonhosted.org/packages/9c/2c/0b192296c29fc4c8a2902af62a998d4ca80361e76d2f8d30459352e06277/shadow_useragent-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbb34755fb83ca75d430ec5d37224cb4", "sha256": "96b892334c6f7bf5b9a8becb3927f18e9e26565015aebf4a46115aa6e990b7d9" }, "downloads": -1, "filename": "shadow-useragent-0.0.6.tar.gz", "has_sig": false, "md5_digest": "fbb34755fb83ca75d430ec5d37224cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8285, "upload_time": "2019-08-07T18:14:30", "url": "https://files.pythonhosted.org/packages/fd/dd/f077b86f5b21605a8ca74885a406cd651ec6011c75d820530d9490522047/shadow-useragent-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "8df8227c8cea4c5978df97c761cb9b3f", "sha256": "410a545a5c54cb6b7c6759e050c4e46ab85f3355fdfc2d41e4e4587c3aebbddf" }, "downloads": -1, "filename": "shadow_useragent-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "8df8227c8cea4c5978df97c761cb9b3f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9832, "upload_time": "2019-08-07T18:47:15", "url": "https://files.pythonhosted.org/packages/85/f5/45cd78641dfe42c554a8c49c251b7c824b99e53899cf36f2c5679ddf168c/shadow_useragent-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fda5a457565dca934fbcbc62502011d2", "sha256": "390ba51f672d21d5e87cc197c87c52751a23ffdd8d97ca1cb1c43d891ce05d0c" }, "downloads": -1, "filename": "shadow-useragent-0.0.7.tar.gz", "has_sig": false, "md5_digest": "fda5a457565dca934fbcbc62502011d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8956, "upload_time": "2019-08-07T18:47:16", "url": "https://files.pythonhosted.org/packages/45/23/2e1b9d7a1770bcb505a7db1ab2655f56e17716726686bfe4cc301ece62ec/shadow-useragent-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "fccbc3668eab55f89df12ad9c17102b7", "sha256": "9a7bd6fe1a4f81da4a16bb6007ad506c35751e0a59f7a54197d409acdb80b387" }, "downloads": -1, "filename": "shadow_useragent-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "fccbc3668eab55f89df12ad9c17102b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11246, "upload_time": "2019-08-08T00:05:16", "url": "https://files.pythonhosted.org/packages/97/83/1f08f19b3b369cea0113f92248ecd146cfda4c38e4fa6e59bff0dc10451d/shadow_useragent-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0987f26a20f884863d6a1e417074149", "sha256": "c9a4e00d4a83f84b24003ad7a50d2a037cf210f2d51ea8319cdb75c63c3a0318" }, "downloads": -1, "filename": "shadow-useragent-0.0.8.tar.gz", "has_sig": false, "md5_digest": "f0987f26a20f884863d6a1e417074149", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10430, "upload_time": "2019-08-08T00:05:17", "url": "https://files.pythonhosted.org/packages/8c/92/c06551f3697e83a73326fa794eacd593696e6363c4f161a0cd81e9d63c45/shadow-useragent-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "e15babbb9a5e6fbf3450e0a6c144ca7d", "sha256": "6fddeed73e77222c3e4e5239bb75e930221d72d564e94a04f23fb3b19bcb9148" }, "downloads": -1, "filename": "shadow_useragent-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "e15babbb9a5e6fbf3450e0a6c144ca7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10716, "upload_time": "2019-08-08T00:07:59", "url": "https://files.pythonhosted.org/packages/18/2c/b91c3e8b65aaae08f7ee2d8c1e98755388ea62a43832d289e793a73d3e22/shadow_useragent-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c964fde163ff53f5490c2a2d2d6b919", "sha256": "fd3e75d088908f5e59628029f3c14df4526620ea61f6089cad1131f91240ffa8" }, "downloads": -1, "filename": "shadow-useragent-0.0.9.tar.gz", "has_sig": false, "md5_digest": "2c964fde163ff53f5490c2a2d2d6b919", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9816, "upload_time": "2019-08-08T00:08:00", "url": "https://files.pythonhosted.org/packages/22/82/4b20dca941d5fb997f7e60361bdfefaebb54b1441acfe536f0070f6ab813/shadow-useragent-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a4b37da15c8a6698250e90e31a2bed0a", "sha256": "3061970e45587528516ed0c3f9919bcc8a6d38eadeb4b0388c56984e7c98f77d" }, "downloads": -1, "filename": "shadow_useragent-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "a4b37da15c8a6698250e90e31a2bed0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11168, "upload_time": "2019-09-01T13:37:35", "url": "https://files.pythonhosted.org/packages/2c/e0/c63f4a73e5a2832c1ec1475e6e23d2be136dfda409863fa5fc70c3c3707d/shadow_useragent-0.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc5fecd6d4427e838e75139e13b31540", "sha256": "ace3f53c0ec697b36eb35bb04ccc04d4727bf924edd5bf7caad78b64d272d755" }, "downloads": -1, "filename": "shadow-useragent-0.0.17.tar.gz", "has_sig": false, "md5_digest": "cc5fecd6d4427e838e75139e13b31540", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10976, "upload_time": "2019-09-01T13:37:36", "url": "https://files.pythonhosted.org/packages/21/73/11d4b946093ea19ca23b4fdb222778faba6bfbe018d1c93700ca5bc06eb5/shadow-useragent-0.0.17.tar.gz" } ] }