{
"info": {
"author": "Mike Sukmanowsky",
"author_email": "mike@parsely.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Information Technology",
"License :: OSI Approved :: BSD License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities"
],
"description": "serpextract\n===========\n\n.. image:: https://travis-ci.org/Meiqia/serpextract.png?branch=master\n :target: https://travis-ci.org/Meiqia/serpextract\n\n``serpextract`` provides easy extraction of keywords from search engine results pages (SERPs).\n\nThis module is possible in large part to the very hard work of the `Piwik `_ team.\nSpecifically, we make extensive use of their `list of search engines `_.\n\n\nInstallation\n------------\nLatest release on PyPI::\n\n $ pip install serpextract\n\nOr the latest development version (not recommended)::\n\n $ pip install -e git://github.com/Parsely/serpextract.git#egg=serpextract\n\nUsage\n-----\n\nCommand Line\n^^^^^^^^^^^^\n\nCommand-line usage, returns the engine name and keyword components separated by a\ncomma and enclosed in quotes::\n\n $ serpextract \"http://www.google.ca/url?sa=t&rct=j&q=ars%20technica\"\n \"Google\",\"ars technica\"\n\nYou can also print out a list of all the SearchEngineParsers currently available in\nyour local cache via::\n\n $ serpextract -l\n\nPython\n^^^^^^\n\n.. code-block:: python\n\n from serpextract import get_parser, extract, is_serp, get_all_query_params\n\n non_serp_url = 'http://arstechnica.com/'\n serp_url = ('http://www.google.ca/url?sa=t&rct=j&q=ars%20technica&source=web&cd=1&ved=0CCsQFjAA'\n '&url=http%3A%2F%2Farstechnica.com%2F&ei=pf7RUYvhO4LdyAHf9oGAAw&usg=AFQjCNHA7qjcMXh'\n 'j-UX9EqSy26wZNlL9LQ&bvm=bv.48572450,d.aWc')\n\n get_all_query_params()\n # ['key', 'text', 'search_for', 'searchTerm', 'qrs', 'keyword', ...]\n\n is_serp(serp_url)\n # True\n is_serp(non_serp_url)\n # False\n\n get_parser(serp_url)\n # SearchEngineParser(engine_name='Google', keyword_extractor=['q'], link_macro='search?q={k}', charsets=['utf-8'])\n get_parser(non_serp_url)\n # None\n\n extract(serp_url)\n # ExtractResult(engine_name='Google', keyword=u'ars technica', parser=SearchEngineParser(...))\n extract(non_serp_url)\n # None\n\n**Naive Detection**\n\nThe list of search engine parsers that Piwik and therefore ``serpextract`` uses is far from\nexhaustive. If you want ``serpextract`` to attempt to guess if a given referring URL is a SERP,\nyou can specify ``use_naive_method=True`` to ``serpextract.is_serp`` or ``serpextract.extract``.\nBy default, the naive method is disabled.\n\nNaive search engine detection tries to find an instance of ``r'\\.?search\\.'`` in the ``netloc``\nof a URL. If found, ``serpextract`` will then try to find a keyword in the ``query`` portion of\nthe URL by looking for the following params in order::\n\n _naive_params = ('q', 'query', 'k', 'keyword', 'term',)\n\nIf one of these are found, a keyword is extracted and an ``ExtractResult`` is constructed as::\n\n ExtractResult(domain, keyword, None) # No parser, but engine name and keyword\n\n.. code-block:: python\n\n # Not a recognized search engine by serpextract\n serp_url = 'http://search.piccshare.com/search.php?cat=web&channel=main&hl=en&q=test'\n\n is_serp(serp_url)\n # False\n\n extract(serp_url)\n # None\n\n is_serp(serp_url, use_naive_method=True)\n # True\n\n extract(serp_url, use_naive_method=True)\n # ExtractResult(engine_name=u'piccshare', keyword=u'test', parser=None)\n\n**Custom Parsers**\n\nIn the event that you have a custom search engine that you'd like to track which is not currently\nsupported by Piwik/``serpextract``, you can create your own instance of\n``serpextract.SearchEngineParser`` and either pass it explicitly to either\n``serpextract.is_serp`` or ``serpextract.extract`` or add it\nto the internal list of parsers.\n\n.. code-block:: python\n\n # Create a parser for PiccShare\n from serpextract import SearchEngineParser, is_serp, extract\n\n my_parser = SearchEngineParser(u'PiccShare', # Engine name\n u'q', # Keyword extractor\n u'/search.php?q={k}', # Link macro\n u'utf-8') # Charset\n serp_url = 'http://search.piccshare.com/search.php?cat=web&channel=main&hl=en&q=test'\n\n is_serp(serp_url)\n # False\n\n extract(serp_url)\n # None\n\n is_serp(serp_url, parser=my_parser)\n # True\n\n extract(serp_url, parser=my_parser)\n # ExtractResult(engine_name=u'PiccShare', keyword=u'test', parser=SearchEngineParser(engine_name=u'PiccShare', keyword_extractor=[u'q'], link_macro=u'/search.php?q={k}', charsets=[u'utf-8']))\n\n\nYou can also permanently add a custom parser to the internal list of parsers that\n``serpextract`` maintains so that you no longer have to explicitly pass a parser\nobject to ``serpextract.is_serp`` or ``serpextract.extract``.\n\n.. code-block:: python\n\n from serpextract import SearchEngineParser, add_custom_parser, is_serp, extract\n\n my_parser = SearchEngineParser(u'PiccShare', # Engine name\n u'q', # Keyword extractor\n u'/search.php?q={k}', # Link macro\n u'utf-8') # Charset\n add_custom_parser(u'search.piccshare.com', my_parser)\n\n serp_url = 'http://search.piccshare.com/search.php?cat=web&channel=main&hl=en&q=test'\n is_serp(serp_url)\n # True\n\n extract(serp_url)\n # ExtractResult(engine_name=u'PiccShare', keyword=u'test', parser=SearchEngineParser(engine_name=u'PiccShare', keyword_extractor=[u'q'], link_macro=u'/search.php?q={k}', charsets=[u'utf-8']))\n\n\nTests\n-----\n\nThere are some basic tests for popular search engines, but more are required::\n\n $ pip install -r requirements.txt\n $ nosetests\n\nCaching\n-------\n\nInternally, this module caches an OrderedDict representation of \n`Piwik's list of search engines `_\nwhich is stored in ``serpextract/search_engines.pickle``. This isn't intended to change that often and so this\nmodule ships with a cached version.\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/Meiqia/serpextract/",
"keywords": "search engines keyword extract",
"license": "LICENSE.txt",
"maintainer": "",
"maintainer_email": "",
"name": "serpextract-meiqia",
"package_url": "https://pypi.org/project/serpextract-meiqia/",
"platform": "any",
"project_url": "https://pypi.org/project/serpextract-meiqia/",
"project_urls": {
"Homepage": "http://github.com/Meiqia/serpextract/"
},
"release_url": "https://pypi.org/project/serpextract-meiqia/2019.1.15.0/",
"requires_dist": [
"iso3166 (>=0.4)",
"pylru (>=1.0.3)",
"tldextract (>=1.2)",
"chardet"
],
"requires_python": "",
"summary": "Easy extraction of keywords from search engine results pages (SERPs).",
"version": "2019.1.15.0"
},
"last_serial": 4942557,
"releases": {
"2016.11.7.1": [
{
"comment_text": "",
"digests": {
"md5": "9181c0f470b5ddca806598a9061d7cd4",
"sha256": "13faf0ca2b191dbff40f81bd2c47ebb1e11418bb0714a33c25ebe49aa5313782"
},
"downloads": -1,
"filename": "serpextract_meiqia-2016.11.7.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "9181c0f470b5ddca806598a9061d7cd4",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 24250,
"upload_time": "2016-11-07T09:47:50",
"url": "https://files.pythonhosted.org/packages/a2/ed/850922c9c16aae5b064abbe0bfecf4278071be7826a51a4d3995a0831cb8/serpextract_meiqia-2016.11.7.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b0424dc949c437787240e2cc5edbf683",
"sha256": "81acc399212805ae7184f64041134f9ea518e2db1b9f97ee3c7ed35dfea2c6e6"
},
"downloads": -1,
"filename": "serpextract-meiqia-2016.11.7.1.tar.gz",
"has_sig": false,
"md5_digest": "b0424dc949c437787240e2cc5edbf683",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22032,
"upload_time": "2016-11-07T09:47:52",
"url": "https://files.pythonhosted.org/packages/89/45/ad803fd9466c842fa89cbf7a95d82e33eb3c0c8ec54fc957cd41969d233e/serpextract-meiqia-2016.11.7.1.tar.gz"
}
],
"2016.8.1": [
{
"comment_text": "",
"digests": {
"md5": "cda2c63ee61a3c3194f891afdb235e49",
"sha256": "eb9b363373c33aa26d4a219d2ba647d313abb6bf63d839e141d82c42f4f87879"
},
"downloads": -1,
"filename": "serpextract_meiqia-2016.8.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "cda2c63ee61a3c3194f891afdb235e49",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 42374,
"upload_time": "2016-08-01T08:12:21",
"url": "https://files.pythonhosted.org/packages/3a/7d/c33533103b8f5d4f977b8c5232a081e14ee52af09e1f37747afc837f8fb4/serpextract_meiqia-2016.8.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e9710df22dafb582200256ef16b1f526",
"sha256": "ff475e5064edb9205fe4386e1e858626a38bea3481001b82199e632e556d79de"
},
"downloads": -1,
"filename": "serpextract-meiqia-2016.8.1.zip",
"has_sig": false,
"md5_digest": "e9710df22dafb582200256ef16b1f526",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 47795,
"upload_time": "2016-08-01T08:12:06",
"url": "https://files.pythonhosted.org/packages/1b/72/973a0373cf48fc5c6ec2fa553d8c1f185716686b975aeb9c83460fd57515/serpextract-meiqia-2016.8.1.zip"
}
],
"2016.8.16": [
{
"comment_text": "",
"digests": {
"md5": "aa1eb05b801b595987e35786d08c30aa",
"sha256": "6ca72eb41fe5cedcb4caddf44210d97deb315ef925ca65c2d07b338a989de605"
},
"downloads": -1,
"filename": "serpextract_meiqia-2016.8.16-py2-none-any.whl",
"has_sig": false,
"md5_digest": "aa1eb05b801b595987e35786d08c30aa",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 42395,
"upload_time": "2016-08-16T05:31:18",
"url": "https://files.pythonhosted.org/packages/b0/25/1187c0e7e1afd4ab6293762e010f55a739e6002e2a7305fc220e04c84802/serpextract_meiqia-2016.8.16-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e2f55ff6758215eda4de2b86df3f90b5",
"sha256": "d7af64d8a7d1cd72d8e224860d059999f2e69a1b296e557a4efe6172d9cea6a8"
},
"downloads": -1,
"filename": "serpextract-meiqia-2016.8.16.tar.gz",
"has_sig": false,
"md5_digest": "e2f55ff6758215eda4de2b86df3f90b5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 43052,
"upload_time": "2016-08-16T05:31:12",
"url": "https://files.pythonhosted.org/packages/3b/4e/fdddc0a774172be2e68b15aa5d93add4e0fb89100967049e2a1445f68880/serpextract-meiqia-2016.8.16.tar.gz"
}
],
"2016.8.16.2": [
{
"comment_text": "",
"digests": {
"md5": "0b704b4623f124399ed614d059b2529f",
"sha256": "c05d10208720e079148951094e95e389b45e3079ac2ac21904ee08d764f58a43"
},
"downloads": -1,
"filename": "serpextract_meiqia-2016.8.16.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "0b704b4623f124399ed614d059b2529f",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 42409,
"upload_time": "2016-08-16T05:42:16",
"url": "https://files.pythonhosted.org/packages/0f/36/8d06f42fa5a96fdcac2108cb41b1a74d9ae5ba57aaa47e8bcc2589262eb8/serpextract_meiqia-2016.8.16.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "78f5095d3d4f43a0a0e42d432b88994a",
"sha256": "4b090702b0f1a682d0bf907ebbea7847ada25852c9ec5bc7bc9452511b459966"
},
"downloads": -1,
"filename": "serpextract-meiqia-2016.8.16.2.tar.gz",
"has_sig": false,
"md5_digest": "78f5095d3d4f43a0a0e42d432b88994a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 43050,
"upload_time": "2016-08-16T05:42:11",
"url": "https://files.pythonhosted.org/packages/bc/c2/89043e450f9877d2bad801efb7bc4cd2b063bf72fcc2c71c5f7ab4766985/serpextract-meiqia-2016.8.16.2.tar.gz"
}
],
"2017.10.11.0": [
{
"comment_text": "",
"digests": {
"md5": "16d0f4a5c31e0e699a2b82e4ef209834",
"sha256": "070b25983e5efef6d29c244234ddfc6dc9df7b275a87ec77f7e799cc74563f8c"
},
"downloads": -1,
"filename": "serpextract_meiqia-2017.10.11.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "16d0f4a5c31e0e699a2b82e4ef209834",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 42232,
"upload_time": "2017-10-12T08:31:58",
"url": "https://files.pythonhosted.org/packages/3c/dc/aa359cb4b329b698746078029627c9a095600e92db00a99d42d55ebdceb6/serpextract_meiqia-2017.10.11.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "42cd590298cf1a574c44a5dee9190964",
"sha256": "4a8327fbee2c5f9475ddabb7cfc0527c5747dbf80c203fe176b372958866bd82"
},
"downloads": -1,
"filename": "serpextract-meiqia-2017.10.11.0.tar.gz",
"has_sig": false,
"md5_digest": "42cd590298cf1a574c44a5dee9190964",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40206,
"upload_time": "2017-10-12T08:31:58",
"url": "https://files.pythonhosted.org/packages/b2/8e/fbbf570b351e742acfc42b863f6c408aedee3c2fa75124b4519d4cc6354b/serpextract-meiqia-2017.10.11.0.tar.gz"
}
],
"2017.10.20.0": [
{
"comment_text": "",
"digests": {
"md5": "6c71b69ed5bdf79e735b9d97d33725f3",
"sha256": "080d673ddd0eb2d47c885d3a359c46e3c5b9464b4edc3bc0ef8eb025ad382117"
},
"downloads": -1,
"filename": "serpextract_meiqia-2017.10.20.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "6c71b69ed5bdf79e735b9d97d33725f3",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 42240,
"upload_time": "2017-10-20T06:54:36",
"url": "https://files.pythonhosted.org/packages/22/6e/80c2968de39ecd36b9ce6bbce20f21b18b98ccbecdd5ad95c04d1b1bc9ac/serpextract_meiqia-2017.10.20.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "740da1c53a18bd5996778148d49db78e",
"sha256": "2eb0fc1fcad78ac4e0f70bbef65e83b90174625f7c2567bcc243d8235103e074"
},
"downloads": -1,
"filename": "serpextract-meiqia-2017.10.20.0.tar.gz",
"has_sig": false,
"md5_digest": "740da1c53a18bd5996778148d49db78e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40215,
"upload_time": "2017-10-20T06:54:37",
"url": "https://files.pythonhosted.org/packages/9a/e9/790f1cc89eba70c5b60495850d3863715d3d35978c27b47de28b4ee9f624/serpextract-meiqia-2017.10.20.0.tar.gz"
}
],
"2018.10.30.0": [
{
"comment_text": "",
"digests": {
"md5": "83402e2a1083ea1790efa0505c89f79e",
"sha256": "a15627b62d58585ab14187a1e74a9045464a61fccb5742cb89a2fde4b7162b58"
},
"downloads": -1,
"filename": "serpextract_meiqia-2018.10.30.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "83402e2a1083ea1790efa0505c89f79e",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 39821,
"upload_time": "2018-10-31T02:57:51",
"url": "https://files.pythonhosted.org/packages/1a/57/3f2c67d05a893c5e18ac68c5cd339368ff16b3444010b9aa6b331021e3a0/serpextract_meiqia-2018.10.30.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f1497636371c283c181c0dfae8a89d0a",
"sha256": "ca24d6b7cecf53abf11ef831a9cd05c45496cd6b7beaa6b45f1dc8a84d2e6db7"
},
"downloads": -1,
"filename": "serpextract-meiqia-2018.10.30.0.tar.gz",
"has_sig": false,
"md5_digest": "f1497636371c283c181c0dfae8a89d0a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40050,
"upload_time": "2018-10-31T02:57:52",
"url": "https://files.pythonhosted.org/packages/6f/c5/85dc28e5bed6249dfc0730a7aaaecd3e576bc5e6b479af7dd00547856345/serpextract-meiqia-2018.10.30.0.tar.gz"
}
],
"2018.2.28.0": [
{
"comment_text": "",
"digests": {
"md5": "0a9bd4e0062c40c85c65d7d4baa48f8e",
"sha256": "f99d8ba1b731f130f7fc39e160b0465451f18f35658593993d64b978e2e963bc"
},
"downloads": -1,
"filename": "serpextract_meiqia-2018.2.28.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "0a9bd4e0062c40c85c65d7d4baa48f8e",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 42033,
"upload_time": "2018-02-28T04:15:56",
"url": "https://files.pythonhosted.org/packages/eb/f8/44a6bd8899bf203324d3f747933267c71284b3d49382cca50743ec93b9c1/serpextract_meiqia-2018.2.28.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "76dad25739895f65d56a459e7622c39b",
"sha256": "e3503933d8a17bb4c169afd2f169ae39c72279176f970c7422ed7246924b11e4"
},
"downloads": -1,
"filename": "serpextract-meiqia-2018.2.28.0.tar.gz",
"has_sig": false,
"md5_digest": "76dad25739895f65d56a459e7622c39b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40040,
"upload_time": "2018-02-28T04:15:59",
"url": "https://files.pythonhosted.org/packages/6f/e7/0c6c9a403f998089bc1ae575427da41b1b21debf80b3740537fad234a714/serpextract-meiqia-2018.2.28.0.tar.gz"
}
],
"2018.7.3.1": [
{
"comment_text": "",
"digests": {
"md5": "05bf6cd5b82316a0f804f875f2cd9f2d",
"sha256": "926c8c6659819373681c5032d0d37fc10a644726f72d897bfa31924a82cd1d24"
},
"downloads": -1,
"filename": "serpextract_meiqia-2018.7.3.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "05bf6cd5b82316a0f804f875f2cd9f2d",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 38750,
"upload_time": "2018-07-03T09:02:38",
"url": "https://files.pythonhosted.org/packages/08/9b/cf44777ad1409bb7cc73f4800489d206089e9e5650e4c46a5be6ec101ea4/serpextract_meiqia-2018.7.3.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a403fe88c3007909727c952bbc20c566",
"sha256": "ea19a007af50075bcb32a67373582bbbce6572574691b3ae2daeed3d93584722"
},
"downloads": -1,
"filename": "serpextract-meiqia-2018.7.3.1.tar.gz",
"has_sig": false,
"md5_digest": "a403fe88c3007909727c952bbc20c566",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 40014,
"upload_time": "2018-07-03T09:02:40",
"url": "https://files.pythonhosted.org/packages/ce/11/bf12c9c28b29fe161070689e50425e088d75dfff3548fc25cb2356e6adde/serpextract-meiqia-2018.7.3.1.tar.gz"
}
],
"2019.1.15.0": [
{
"comment_text": "",
"digests": {
"md5": "de5384ceaab8cb30151b6bc3160bfac5",
"sha256": "4e6262b630ae50723fa3b3e952eee19a26cd07b39ee20e77528e974ec9e85b54"
},
"downloads": -1,
"filename": "serpextract_meiqia-2019.1.15.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "de5384ceaab8cb30151b6bc3160bfac5",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 39797,
"upload_time": "2019-03-15T04:09:11",
"url": "https://files.pythonhosted.org/packages/e6/1a/200f236b7fdd1fef91651950ffb9c3225a77358a860c8af5e9dab2f95b07/serpextract_meiqia-2019.1.15.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "891a5a3f9e22e29731a7a22ea2554980",
"sha256": "88ca498c1b29d9e1a73f9c133f332f3f983b5e5da125ea28dcec14dd3f9cbb49"
},
"downloads": -1,
"filename": "serpextract-meiqia-2019.1.15.0.tar.gz",
"has_sig": false,
"md5_digest": "891a5a3f9e22e29731a7a22ea2554980",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 42924,
"upload_time": "2019-03-15T04:09:13",
"url": "https://files.pythonhosted.org/packages/8a/02/343b9d582592857cb4e68f0369f55dd00fff119f154d0cf474b449436f57/serpextract-meiqia-2019.1.15.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "de5384ceaab8cb30151b6bc3160bfac5",
"sha256": "4e6262b630ae50723fa3b3e952eee19a26cd07b39ee20e77528e974ec9e85b54"
},
"downloads": -1,
"filename": "serpextract_meiqia-2019.1.15.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "de5384ceaab8cb30151b6bc3160bfac5",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 39797,
"upload_time": "2019-03-15T04:09:11",
"url": "https://files.pythonhosted.org/packages/e6/1a/200f236b7fdd1fef91651950ffb9c3225a77358a860c8af5e9dab2f95b07/serpextract_meiqia-2019.1.15.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "891a5a3f9e22e29731a7a22ea2554980",
"sha256": "88ca498c1b29d9e1a73f9c133f332f3f983b5e5da125ea28dcec14dd3f9cbb49"
},
"downloads": -1,
"filename": "serpextract-meiqia-2019.1.15.0.tar.gz",
"has_sig": false,
"md5_digest": "891a5a3f9e22e29731a7a22ea2554980",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 42924,
"upload_time": "2019-03-15T04:09:13",
"url": "https://files.pythonhosted.org/packages/8a/02/343b9d582592857cb4e68f0369f55dd00fff119f154d0cf474b449436f57/serpextract-meiqia-2019.1.15.0.tar.gz"
}
]
}