{ "info": { "author": "Skactor", "author_email": "sk4ct0r@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "## aiohttp-socks\n\n[![Build Status](https://travis-ci.org/Skactor/aiohttp-proxy.svg?branch=master)](https://github.com/Skactor/aiohttp-proxy)\n[![Coverage Status](https://coveralls.io/repos/github/Skactor/aiohttp-proxy/badge.svg?branch=master)](https://coveralls.io/Skactor/aiohttp-proxy?branch=master)\n[![PyPI version](https://badge.fury.io/py/aiohttp-proxy.svg)](https://badge.fury.io/py/aiohttp-proxy)\n\nSOCKS proxy connector for [aiohttp](https://github.com/aio-libs/aiohttp). HTTP, HTTPS, SOCKS4(a) and SOCKS5(h) proxies are supported.\n\n## Requirements\n- Python >= 3.5.3\n- aiohttp >= 2.3.2 # including v3.x\n\n## Installation\n```\npip install aiohttp_proxy\n```\n\n## Usage\n\n#### aiohttp usage:\n```python\nimport aiohttp\nfrom aiohttp_proxy import ProxyConnector, ProxyType\n\n\nasync def fetch(url):\n connector = ProxyConnector.from_url('http://user:password@127.0.0.1:1080')\n ### or use ProxyConnector constructor\n # connector = ProxyConnector(\n # proxy_type=ProxyType.SOCKS5,\n # host='127.0.0.1',\n # port=1080,\n # username='user',\n # password='password',\n # rdns=True\n # )\n async with aiohttp.ClientSession(connector=connector) as session:\n async with session.get(url) as response:\n return await response.text()\n```\n\n#### aiohttp-socks also provides `open_connection` and `create_connection` functions:\n\n```python\nfrom aiohttp_proxy import open_connection\n\nasync def fetch():\n reader, writer = await open_connection(\n socks_url='http://user:password@127.0.0.1:1080',\n host='check-host.net',\n port=80\n )\n request = (b\"GET /ip HTTP/1.1\\r\\n\"\n b\"Host: check-host.net\\r\\n\"\n b\"Connection: close\\r\\n\\r\\n\")\n\n writer.write(request)\n return await reader.read(-1)\n```\n\n## Why give aiohttp a new proxy support\n\nFirst must declare, our code is based on [aiohttp-socks](https://github.com/romis2012/aiohttp-socks)\u951b\u5bbchank you very much for the hard work.\n\nBut in order to more flexible support for multiple proxy methods (not just SOCKS proxy),\nwe decided to fork [aiohttp-socks] (https://github.com/romis2012/aiohttp-socks), which is currently based on it.\n\nCombine with native aiohttp to provide HTTP/HTTPS proxy instead of writing troublesome discriminating code based on the type of proxy.\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/Skactor/aiohttp-proxy", "keywords": "asyncio aiohttp socks socks5 socks4 http https proxy", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "aiohttp-proxy", "package_url": "https://pypi.org/project/aiohttp-proxy/", "platform": "", "project_url": "https://pypi.org/project/aiohttp-proxy/", "project_urls": { "Homepage": "https://github.com/Skactor/aiohttp-proxy" }, "release_url": "https://pypi.org/project/aiohttp-proxy/0.1.1/", "requires_dist": [ "aiohttp (>=2.3.2)", "yarl" ], "requires_python": "", "summary": "Full-featured proxy connector for aiohttp", "version": "0.1.1" }, "last_serial": 5307750, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "b71f67b422c75361c2740363dac4f666", "sha256": "69d396b5fcfca5cdd275ccb9514c194265355982d78a26da7802c3e8623e32b2" }, "downloads": -1, "filename": "aiohttp_proxy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b71f67b422c75361c2740363dac4f666", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12385, "upload_time": "2019-05-23T14:21:17", "url": "https://files.pythonhosted.org/packages/b1/75/09960db69300d5fa7e590f5049cf1c5ddf7850b7eca2241a80b382b75f9f/aiohttp_proxy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98c918e1488951a27a58d7349ddd5ab0", "sha256": "bc08d5a5261c092d964139a88a6ff4eea7abe20679d8b4edb94c2747ed55afaf" }, "downloads": -1, "filename": "aiohttp_proxy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "98c918e1488951a27a58d7349ddd5ab0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10939, "upload_time": "2019-05-23T14:21:19", "url": "https://files.pythonhosted.org/packages/2c/6e/cea3001bb654845ef4e6cee4b179d85812b043fd9fd67131b30a260cd3ee/aiohttp_proxy-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b71f67b422c75361c2740363dac4f666", "sha256": "69d396b5fcfca5cdd275ccb9514c194265355982d78a26da7802c3e8623e32b2" }, "downloads": -1, "filename": "aiohttp_proxy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b71f67b422c75361c2740363dac4f666", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12385, "upload_time": "2019-05-23T14:21:17", "url": "https://files.pythonhosted.org/packages/b1/75/09960db69300d5fa7e590f5049cf1c5ddf7850b7eca2241a80b382b75f9f/aiohttp_proxy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98c918e1488951a27a58d7349ddd5ab0", "sha256": "bc08d5a5261c092d964139a88a6ff4eea7abe20679d8b4edb94c2747ed55afaf" }, "downloads": -1, "filename": "aiohttp_proxy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "98c918e1488951a27a58d7349ddd5ab0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10939, "upload_time": "2019-05-23T14:21:19", "url": "https://files.pythonhosted.org/packages/2c/6e/cea3001bb654845ef4e6cee4b179d85812b043fd9fd67131b30a260cd3ee/aiohttp_proxy-0.1.1.tar.gz" } ] }