{ "info": { "author": "Giorgos Tzampanakis", "author_email": "giorgos.tzampanakis@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Indexing/Search" ], "description": "Each Downloader maintains an sqlite3-based disk cache that utilizes zlib\r\ncompression. Network requests are only made if the cached version of the\r\nresource has an age larger or equal to the stale_after value provided by the\r\nprogrammer.\r\n\r\nBetween network requests a throttling interval needs to elapse. This throttling\r\ninterval is randomly chosen, but lies within the throttle_bounds defined by the\r\nprogrammer.\r\n\r\nHTML resources can be parsed using lxml and in this case an lxml ElementTree is\r\nreturned instead of a file object, with the links rewritten to be absolute in\r\norder to facilitate following them. The parsing is done leniently in order to\r\nnot fail when invalid HTML is encountered.\r\n\r\nThe programmer can also supply a function that decides whether the server has\r\nbanned the client (possibly by examining the returned resource). In this case\r\nan exception will be raised.\r\n\r\nDownloader's features make it ideal for writing scrapers, as it can keep its\r\nnetwork footprint small (due to the cache) and irregular (due to the random\r\nthrottling interval).\r\n\r\nTo install, simply run:\r\n\r\npython setup.py install\r\n\r\nFor documentation, after installing, run:\r\n\r\npython -m pydoc downloader", "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/gtzampanakis/downloader", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "downloader", "package_url": "https://pypi.org/project/downloader/", "platform": "Any", "project_url": "https://pypi.org/project/downloader/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/gtzampanakis/downloader" }, "release_url": "https://pypi.org/project/downloader/0.98/", "requires_dist": null, "requires_python": null, "summary": "Download URLs using a compressed disk cache and a random throttling interval.", "version": "0.98" }, "last_serial": 2233511, "releases": { "0.95": [ { "comment_text": "", "digests": { "md5": "f82fb95d04c4bd67f1437b2751263f53", "sha256": "4db2c560b65a390e29a907493c692d5f3a5bde34faa097c7fdc560591b325ded" }, "downloads": -1, "filename": "downloader-0.95.win32.exe", "has_sig": false, "md5_digest": "f82fb95d04c4bd67f1437b2751263f53", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 202342, "upload_time": "2014-09-24T22:12:47", "url": "https://files.pythonhosted.org/packages/65/cc/ea2d24e6dd018827c1328aa637d582a66681583feb45556a9f799c6b1991/downloader-0.95.win32.exe" }, { "comment_text": "", "digests": { "md5": "501fedad43da57898b6c0856054fbe46", "sha256": "8452a4c5d4e1cca28cfdccf44957b7c3afffb450f03c5be61fa699ffeb54e943" }, "downloads": -1, "filename": "downloader-0.95.zip", "has_sig": false, "md5_digest": "501fedad43da57898b6c0856054fbe46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6598, "upload_time": "2014-09-24T22:12:42", "url": "https://files.pythonhosted.org/packages/db/a1/218a047470e543bfb0631bbbd55d5ba507fa85d8503985348e1a918270ea/downloader-0.95.zip" } ], "0.96": [ { "comment_text": "", "digests": { "md5": "e3852bbee576bf50758207676194dd20", "sha256": "9923229f1a71fd80efd531ae5376fe4582c09b0c0abc68b8d09da4bd2a56e678" }, "downloads": -1, "filename": "downloader-0.96.win32.exe", "has_sig": false, "md5_digest": "e3852bbee576bf50758207676194dd20", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 202363, "upload_time": "2014-09-27T22:17:24", "url": "https://files.pythonhosted.org/packages/b2/00/2b15233255e7ce2a3ed237331b5d2916fa5a39a1dce0b0990a09f02fda42/downloader-0.96.win32.exe" }, { "comment_text": "", "digests": { "md5": "ceb4219dbb724de05b0b3c83e77379fc", "sha256": "9ac1a58f84236d3d8955aee11f3fef0ecaccc1239d0e94cd88382adb23836cff" }, "downloads": -1, "filename": "downloader-0.96.zip", "has_sig": false, "md5_digest": "ceb4219dbb724de05b0b3c83e77379fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6640, "upload_time": "2014-09-27T22:17:19", "url": "https://files.pythonhosted.org/packages/d6/fa/0617cdf06251611fac8f3af854090eaf2a4623abced2e5ecd212d91a9e78/downloader-0.96.zip" } ], "0.98": [ { "comment_text": "", "digests": { "md5": "b2b935502e5d9b0a17d0b84cddfe1186", "sha256": "b094e8ed589d7a24b0eeab9e6c1e2638446d82a118fd62cb0c67cccf99a437a9" }, "downloads": -1, "filename": "downloader-0.98.tar.gz", "has_sig": false, "md5_digest": "b2b935502e5d9b0a17d0b84cddfe1186", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6933, "upload_time": "2016-07-20T17:05:10", "url": "https://files.pythonhosted.org/packages/4e/ee/78bff07448dbf9fd03e45f3ec40ab09a4e0f1827508124b98f3c83d49af4/downloader-0.98.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2b935502e5d9b0a17d0b84cddfe1186", "sha256": "b094e8ed589d7a24b0eeab9e6c1e2638446d82a118fd62cb0c67cccf99a437a9" }, "downloads": -1, "filename": "downloader-0.98.tar.gz", "has_sig": false, "md5_digest": "b2b935502e5d9b0a17d0b84cddfe1186", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6933, "upload_time": "2016-07-20T17:05:10", "url": "https://files.pythonhosted.org/packages/4e/ee/78bff07448dbf9fd03e45f3ec40ab09a4e0f1827508124b98f3c83d49af4/downloader-0.98.tar.gz" } ] }