proxlist


Nameproxlist JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttp://github.com/Justintime50/proxlist
SummaryRetrieve free, open-source proxy servers.
upload_time2024-04-11 15:35:02
maintainerNone
docs_urlNone
authorJustintime50
requires_python<4,>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <div align="center">

# Proxlist

Retrieve free, open-source proxy servers.

[![Build Status](https://github.com/Justintime50/proxlist/workflows/build/badge.svg)](https://github.com/Justintime50/proxlist/actions)
[![Coverage Status](https://coveralls.io/repos/github/Justintime50/proxlist/badge.svg?branch=main)](https://coveralls.io/github/Justintime50/proxlist?branch=main)
[![PyPi](https://img.shields.io/pypi/v/proxlist)](https://pypi.org/project/proxlist)
[![Licence](https://img.shields.io/github/license/Justintime50/proxlist)](LICENSE)

<img src="https://raw.githubusercontent.com/justintime50/assets/main/src/proxlist/showcase.png" alt="Showcase">

</div>

Finding and storing a list of proxies can be taxing - especially ones that are free and actually work. `proxlist` will validate and return a rotating random proxy so you don't need to keep a list of proxies or ensure the list is still valid.

Proxies are returned in the form of strings (eg: `ip:port`).

These proxies come from all over the world and may not be performant for a production application. Instead, you should use a paid proxy service or a self-hosted solution. This package is intended for testing purposes and there are no guarantees about where the data sent through these proxies goes or how it's handled. The list and quality of proxies rotates rapidly - your mileage may vary.

## Install

```bash
# Install tool
pip3 install proxlist

# Install locally
just install
```

## Usage

```python
import proxlist
import requests

# Get a random proxy
proxy = proxlist.random_proxy()

# You can also filter proxies by country or google_verified
proxies = proxlist.random_proxy(country='US', google_verified=True)

# Alternatively, you could get the entire list of current proxies (and could optionally filter them like above)
proxies = proxlist.list_proxies()

# Depending on the proxy and your location in the world, you may need to adjust the timeout
# to provide the proxy enough time to route your request. Additionally, some of these proxies
# may be unstable - adding retry logic is highly recommended. Caching a working proxy is also
# a good idea with a fallback of retrying if the cached proxy no longer works or times out.
response = requests.get(
    'https://google.com',
    proxies={
        'http': f'http://{proxy}',
        'https': f'http://{proxy}',
    },
    timeout=10,
)

print(response.text)
```

## Development

```bash
# Get a comprehensive list of development tools
just --list
```

            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/Justintime50/proxlist",
    "name": "proxlist",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Justintime50",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/d5/61/abd73e2a0b2e186a90a2330233f792dd54192ad2f443ee4d3db344dc27e6/proxlist-1.0.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# Proxlist\n\nRetrieve free, open-source proxy servers.\n\n[![Build Status](https://github.com/Justintime50/proxlist/workflows/build/badge.svg)](https://github.com/Justintime50/proxlist/actions)\n[![Coverage Status](https://coveralls.io/repos/github/Justintime50/proxlist/badge.svg?branch=main)](https://coveralls.io/github/Justintime50/proxlist?branch=main)\n[![PyPi](https://img.shields.io/pypi/v/proxlist)](https://pypi.org/project/proxlist)\n[![Licence](https://img.shields.io/github/license/Justintime50/proxlist)](LICENSE)\n\n<img src=\"https://raw.githubusercontent.com/justintime50/assets/main/src/proxlist/showcase.png\" alt=\"Showcase\">\n\n</div>\n\nFinding and storing a list of proxies can be taxing - especially ones that are free and actually work. `proxlist` will validate and return a rotating random proxy so you don't need to keep a list of proxies or ensure the list is still valid.\n\nProxies are returned in the form of strings (eg: `ip:port`).\n\nThese proxies come from all over the world and may not be performant for a production application. Instead, you should use a paid proxy service or a self-hosted solution. This package is intended for testing purposes and there are no guarantees about where the data sent through these proxies goes or how it's handled. The list and quality of proxies rotates rapidly - your mileage may vary.\n\n## Install\n\n```bash\n# Install tool\npip3 install proxlist\n\n# Install locally\njust install\n```\n\n## Usage\n\n```python\nimport proxlist\nimport requests\n\n# Get a random proxy\nproxy = proxlist.random_proxy()\n\n# You can also filter proxies by country or google_verified\nproxies = proxlist.random_proxy(country='US', google_verified=True)\n\n# Alternatively, you could get the entire list of current proxies (and could optionally filter them like above)\nproxies = proxlist.list_proxies()\n\n# Depending on the proxy and your location in the world, you may need to adjust the timeout\n# to provide the proxy enough time to route your request. Additionally, some of these proxies\n# may be unstable - adding retry logic is highly recommended. Caching a working proxy is also\n# a good idea with a fallback of retrying if the cached proxy no longer works or times out.\nresponse = requests.get(\n    'https://google.com',\n    proxies={\n        'http': f'http://{proxy}',\n        'https': f'http://{proxy}',\n    },\n    timeout=10,\n)\n\nprint(response.text)\n```\n\n## Development\n\n```bash\n# Get a comprehensive list of development tools\njust --list\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Retrieve free, open-source proxy servers.",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "http://github.com/Justintime50/proxlist"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "98be47e861dfbae3b15be9265ffc484438adba53cb5e534c554dd2797907b4c3",
                "md5": "51f57322c71e114db5871f8c749cb141",
                "sha256": "36f84f472d96896df9ca0f1eb740e74c87814f455e5eea032609ba7f79b98bf1"
            },
            "downloads": -1,
            "filename": "proxlist-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "51f57322c71e114db5871f8c749cb141",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.8",
            "size": 5687,
            "upload_time": "2024-04-11T15:34:59",
            "upload_time_iso_8601": "2024-04-11T15:34:59.502982Z",
            "url": "https://files.pythonhosted.org/packages/98/be/47e861dfbae3b15be9265ffc484438adba53cb5e534c554dd2797907b4c3/proxlist-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d561abd73e2a0b2e186a90a2330233f792dd54192ad2f443ee4d3db344dc27e6",
                "md5": "5961a3821f0add5adc533d733f46418b",
                "sha256": "5ca67687ba6331df91832be07a017ad42a42bbc9a6696f6b48528a9248c2e185"
            },
            "downloads": -1,
            "filename": "proxlist-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5961a3821f0add5adc533d733f46418b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.8",
            "size": 6586,
            "upload_time": "2024-04-11T15:35:02",
            "upload_time_iso_8601": "2024-04-11T15:35:02.028216Z",
            "url": "https://files.pythonhosted.org/packages/d5/61/abd73e2a0b2e186a90a2330233f792dd54192ad2f443ee4d3db344dc27e6/proxlist-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-11 15:35:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Justintime50",
    "github_project": "proxlist",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "proxlist"
}
        
Elapsed time: 0.23848s