{ "info": { "author": "Jason Moiron", "author_email": "jason@hiidef.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX" ], "description": "speedparser\n-----------\n\nSpeedparser is a black-box \"style\" reimplementation of the `Universal Feed\nParser `_. It uses some feedparser code\nfor date and authors, but mostly re-implements its data normalization algorithms\nbased on feedparser output. It uses ``lxml`` for feed parsing and for optional\nHTML cleaning. Its compatibility with ``feedparser`` is very good for a strict\nsubset of fields, but poor for fields outside that subset. See\n``tests/speedparsertests.py`` for more information on which fields are more or\nless compatible and which are not.\n\nOn an Intel(R) Core(TM) i5 750, running only on one core, ``feedparser`` managed\n``2.5 feeds/sec`` on the test feed set (roughly 4200 \"feeds\" in \n``tests/feeds.tar.bz2``), while ``speedparser`` manages around ``65 feeds/sec``\nwith HTML cleaning on and ``200 feeds/sec`` with cleaning off.\n\ninstalling\n----------\n\n``pip install speedparser``\n\nusage\n-----\n\nUsage is similar to feedparser::\n\n >>> import speedparser\n >>> result = speedparser.parse(feed)\n >>> result = speedparser.parse(feed, clean_html=False)\n\ndifferences\n-----------\n\nThere are a few interface differences and many result differences between\nspeedparser and feedparser. The biggest similarity is that they both return\na ``FeedParserDict()`` object (with keys accessible as attributes), they both\nset the ``bozo`` key when an error is encountered, and various aspects of the\n``feed`` and ``entries`` keys are likely to be identical *or* very similar.\n\n``speedparser`` uses different (and in some cases less or none; buyer beware)\ndata cleaning algorithms than ``feedparser``. When it is enabled, lxml's\n``html.cleaner`` library will be used to clean HTML and give similar but not\nidentical protection against various attributes and elements. If you supply\nyour own ``Cleaner`` element to the \"``clean_html`` kwarg, it will be used\nby ``speedparser`` to clean the various attributes of the feed and entries.\n\n``speedparser`` does not attempt to fix character encoding by default because\nthis processing can take a long time for large feeds. If the encoding value of\nthe feed is wrong, or if you want this extra level of error tollerance, you\ncan either use the ``chardet`` module to detect the encoding based on the\ndocument or pass ``encoding=True`` to ``speedparser.parse`` and it will fall\nback to encoding detection if it encounters encoding errors.\n\nIf your application is using ``feedparser`` to consume many feeds at once and\nCPU is becoming a bottleneck, you might want to try out ``speedparser`` as an\nalternative (using ``feedparser`` as a backup). If you are writing an\napplication that does not ingest many feeds, or where CPU is not a problem,\nyou should use ``feedparser`` as it is flexible with bad or malformed data and\nhas a much better test suite.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hiidef/speedparser/", "keywords": "feedparser rss atom rdf lxml", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "speedparser", "package_url": "https://pypi.org/project/speedparser/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/speedparser/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/hiidef/speedparser/" }, "release_url": "https://pypi.org/project/speedparser/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "feedparser but faster and worse", "version": "0.2.0" }, "last_serial": 1192342, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "6aed805fa387a304b8b39ace45e07d04", "sha256": "8fdb3c239a8088ac8a03ae50f34e7865097eb76c0fcf437eb4df3d44042040c0" }, "downloads": -1, "filename": "speedparser-0.1.tar.gz", "has_sig": false, "md5_digest": "6aed805fa387a304b8b39ace45e07d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14899, "upload_time": "2011-10-04T23:07:10", "url": "https://files.pythonhosted.org/packages/ab/d5/1b66e8d78258bbd1428aff149588bdb12561cc02d7ea5749bc14f370cf37/speedparser-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "05344d8d6579bd8a72821e4dce18598f", "sha256": "9f783898f30fbebee02d628c82774f15e6a856950d4baec53a601d57643f11e3" }, "downloads": -1, "filename": "speedparser-0.1.1.tar.gz", "has_sig": false, "md5_digest": "05344d8d6579bd8a72821e4dce18598f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16460, "upload_time": "2011-10-06T01:42:18", "url": "https://files.pythonhosted.org/packages/84/c8/9d6548d85f4e83c7eaa25c4fa02fa661262492d3830afa6c6f4ef9900618/speedparser-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "89e18e68ae3451c4d4cfe4e454168d6e", "sha256": "20ebf842023f83a40b6ac2316e46623f18e84675ce06989e3d58ca74d08e6238" }, "downloads": -1, "filename": "speedparser-0.1.2.tar.gz", "has_sig": false, "md5_digest": "89e18e68ae3451c4d4cfe4e454168d6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16686, "upload_time": "2011-10-31T19:08:38", "url": "https://files.pythonhosted.org/packages/91/c4/cbe4e80ab52969daf89dab39ef518daddd952cd84f60276bc7b9dcda33b8/speedparser-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "37f5eccf9f148e142c5812a6a2172ac1", "sha256": "53514d842415dd0757e48b3b178a3950267e5d87b12099fb2fe235bc9345fb88" }, "downloads": -1, "filename": "speedparser-0.1.3.tar.gz", "has_sig": false, "md5_digest": "37f5eccf9f148e142c5812a6a2172ac1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16721, "upload_time": "2011-11-21T18:06:59", "url": "https://files.pythonhosted.org/packages/df/39/1d4876c9e97077ce14f9faec9321a0f16358f46324c9cd5066e02d09cf1d/speedparser-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "eaabe8e540a27447ebca71929c98ff91", "sha256": "a9833d59fb8306e7bece9bb9b609e32d7ada0737260aa606603d6c5e9f12f648" }, "downloads": -1, "filename": "speedparser-0.1.4.tar.gz", "has_sig": false, "md5_digest": "eaabe8e540a27447ebca71929c98ff91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16782, "upload_time": "2011-11-29T03:48:07", "url": "https://files.pythonhosted.org/packages/4b/19/b80b2d89501ec5976638cac1c80a0eb698ed541a4412570f51864bf4d12d/speedparser-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "5c4f71edbd609294df995d6b62707dca", "sha256": "133bd7aefe396a7d16de724cd90582db6fe094423dec268efb530301024614b8" }, "downloads": -1, "filename": "speedparser-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5c4f71edbd609294df995d6b62707dca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16786, "upload_time": "2011-12-05T19:46:55", "url": "https://files.pythonhosted.org/packages/fd/cf/06c8563bf71fc64f2180fcd8df8ac09dc4b30be1ba626f3408710893d39f/speedparser-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "103af954ea123ee6c4de022bb6f57697", "sha256": "4df6f9a509de9488f8e3ea8f4b0339a62e0d6fd29982135eac8350ba1be87913" }, "downloads": -1, "filename": "speedparser-0.1.6.tar.gz", "has_sig": false, "md5_digest": "103af954ea123ee6c4de022bb6f57697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17113, "upload_time": "2012-01-11T15:54:22", "url": "https://files.pythonhosted.org/packages/5d/32/e64bfcf3c51933e6fd7e788b710e2bcb0633ac2a1ef50a6562c69b9415af/speedparser-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "36753480438cc178582f5b152f4f3bb8", "sha256": "e8b1d503981f9541d617d952767f245c3b42466ffd2a6d2f07c12e3cafdc431c" }, "downloads": -1, "filename": "speedparser-0.1.7.tar.gz", "has_sig": false, "md5_digest": "36753480438cc178582f5b152f4f3bb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17122, "upload_time": "2012-01-13T04:08:42", "url": "https://files.pythonhosted.org/packages/47/a4/ed745976e9cd8a69fde976614dd2941d4280d52d4a32a3db4f0378ce76d9/speedparser-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "b193d7458deaeeec7a07397cb8247689", "sha256": "6ebb6e3cd07d5c35493f06b616d4c9b3c64d84cdee837771aa16bd4fb49ccd33" }, "downloads": -1, "filename": "speedparser-0.1.8.tar.gz", "has_sig": false, "md5_digest": "b193d7458deaeeec7a07397cb8247689", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17214, "upload_time": "2012-01-25T19:31:21", "url": "https://files.pythonhosted.org/packages/0a/c3/f3d95dab4151de80f95bb02f2ecd289f18402d18f7a4695ea67ec9f9e1e7/speedparser-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8de5f1b0920307880ce402c079c0b435", "sha256": "1074e230145b4d3fd44386c8f7c20ebc51c444b4e2f8efe811b107cfbb880b4c" }, "downloads": -1, "filename": "speedparser-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8de5f1b0920307880ce402c079c0b435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17899, "upload_time": "2014-08-16T13:14:03", "url": "https://files.pythonhosted.org/packages/9c/3d/74754b87cce30c790dc359f7e7c86eb20aea7317a22b133f52c1d6a080e5/speedparser-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8de5f1b0920307880ce402c079c0b435", "sha256": "1074e230145b4d3fd44386c8f7c20ebc51c444b4e2f8efe811b107cfbb880b4c" }, "downloads": -1, "filename": "speedparser-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8de5f1b0920307880ce402c079c0b435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17899, "upload_time": "2014-08-16T13:14:03", "url": "https://files.pythonhosted.org/packages/9c/3d/74754b87cce30c790dc359f7e7c86eb20aea7317a22b133f52c1d6a080e5/speedparser-0.2.0.tar.gz" } ] }