xproxy


Namexproxy JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryMy Awesome Project!
upload_time2024-10-15 13:30:52
maintainerNone
docs_urlNone
authorAuthor
requires_python<4.0,>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # xproxy

## 特性

- **可定制**:可以轻松扩展,将不同来源代理共用。
- **代理验证**:自动检查和验证代理的使用次数和过期时间。
- **自动轮换**:定期刷新和轮换代理,以确保持续供应有效代理。
- **线程安全**:使用多线程处理代理轮换,无阻塞主应用程序。
- **轮询选择**:支持轮询代理选择,均匀分配负载。

## 安装

```
pip install xproxy
```

## 示例

```python
from xproxy.manager import DuoMiProxyManager
import requests
proxy_manager = DuoMiProxyManager(  # 代理管理器,会主动记录无效过的代理,防止重复使用无效代理 自动维护代理池有效代理数量,
    proxy_url='http://api.dmdaili.com/dmgetip.asp?apikey=3be53e22&pwd=4f2799827bfe9c6f0e2a64749cf5f3f6&getnum=50&httptype=1&geshi=2&fenge=1&fengefu=&operate=all',
    max_use_count=5,        # 设定单个代理最大使用次数
    min_valid_proxies=20,   # 设定代理池至少维持20个有效代理
    proxy_expiry_seconds=60,  # 设定单个代理60秒内 或者达到 endtime的时间记录为超时
    rotate_seconds=30       # 定时服务,每隔30秒,检查一遍代理池,如果代理池代理少了,就获取代理
)
proxy = proxy_manager.get_order_proxy()  # proxy_manager.get_random_proxy()
response = requests.get(url, headers=headers, proxies={
                        "http":  str(proxy.url), "https": str(proxy.url)}, timeout=60)
if response.status_code != 200:
    proxy_manager.mark_proxy_invalid(proxy.url)  # 可以主动标记代理为无效
  
```

### 2.1 init project

```bash
poetry install -v
```

### 2.2 usage

TODO

## 3. Develop

You may need to read the [develop document](./docs/development.md) to use SRC Layout in your IDE.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "xproxy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Author",
    "author_email": "author@example.com",
    "download_url": "https://files.pythonhosted.org/packages/e7/ce/95bd905a6d1d3d84b996da79c24296e91b95044df378d007005a6c7302c7/xproxy-0.1.0.tar.gz",
    "platform": null,
    "description": "# xproxy\n\n## \u7279\u6027\n\n- **\u53ef\u5b9a\u5236**\uff1a\u53ef\u4ee5\u8f7b\u677e\u6269\u5c55\uff0c\u5c06\u4e0d\u540c\u6765\u6e90\u4ee3\u7406\u5171\u7528\u3002\n- **\u4ee3\u7406\u9a8c\u8bc1**\uff1a\u81ea\u52a8\u68c0\u67e5\u548c\u9a8c\u8bc1\u4ee3\u7406\u7684\u4f7f\u7528\u6b21\u6570\u548c\u8fc7\u671f\u65f6\u95f4\u3002\n- **\u81ea\u52a8\u8f6e\u6362**\uff1a\u5b9a\u671f\u5237\u65b0\u548c\u8f6e\u6362\u4ee3\u7406\uff0c\u4ee5\u786e\u4fdd\u6301\u7eed\u4f9b\u5e94\u6709\u6548\u4ee3\u7406\u3002\n- **\u7ebf\u7a0b\u5b89\u5168**\uff1a\u4f7f\u7528\u591a\u7ebf\u7a0b\u5904\u7406\u4ee3\u7406\u8f6e\u6362\uff0c\u65e0\u963b\u585e\u4e3b\u5e94\u7528\u7a0b\u5e8f\u3002\n- **\u8f6e\u8be2\u9009\u62e9**\uff1a\u652f\u6301\u8f6e\u8be2\u4ee3\u7406\u9009\u62e9\uff0c\u5747\u5300\u5206\u914d\u8d1f\u8f7d\u3002\n\n## \u5b89\u88c5\n\n```\npip install xproxy\n```\n\n## \u793a\u4f8b\n\n```python\nfrom xproxy.manager import DuoMiProxyManager\nimport requests\nproxy_manager = DuoMiProxyManager(  # \u4ee3\u7406\u7ba1\u7406\u5668\uff0c\u4f1a\u4e3b\u52a8\u8bb0\u5f55\u65e0\u6548\u8fc7\u7684\u4ee3\u7406\uff0c\u9632\u6b62\u91cd\u590d\u4f7f\u7528\u65e0\u6548\u4ee3\u7406 \u81ea\u52a8\u7ef4\u62a4\u4ee3\u7406\u6c60\u6709\u6548\u4ee3\u7406\u6570\u91cf\uff0c\n    proxy_url='http://api.dmdaili.com/dmgetip.asp?apikey=3be53e22&pwd=4f2799827bfe9c6f0e2a64749cf5f3f6&getnum=50&httptype=1&geshi=2&fenge=1&fengefu=&operate=all',\n    max_use_count=5,        # \u8bbe\u5b9a\u5355\u4e2a\u4ee3\u7406\u6700\u5927\u4f7f\u7528\u6b21\u6570\n    min_valid_proxies=20,   # \u8bbe\u5b9a\u4ee3\u7406\u6c60\u81f3\u5c11\u7ef4\u630120\u4e2a\u6709\u6548\u4ee3\u7406\n    proxy_expiry_seconds=60,  # \u8bbe\u5b9a\u5355\u4e2a\u4ee3\u740660\u79d2\u5185 \u6216\u8005\u8fbe\u5230 endtime\u7684\u65f6\u95f4\u8bb0\u5f55\u4e3a\u8d85\u65f6\n    rotate_seconds=30       # \u5b9a\u65f6\u670d\u52a1\uff0c\u6bcf\u969430\u79d2\uff0c\u68c0\u67e5\u4e00\u904d\u4ee3\u7406\u6c60\uff0c\u5982\u679c\u4ee3\u7406\u6c60\u4ee3\u7406\u5c11\u4e86\uff0c\u5c31\u83b7\u53d6\u4ee3\u7406\n)\nproxy = proxy_manager.get_order_proxy()  # proxy_manager.get_random_proxy()\nresponse = requests.get(url, headers=headers, proxies={\n                        \"http\":  str(proxy.url), \"https\": str(proxy.url)}, timeout=60)\nif response.status_code != 200:\n    proxy_manager.mark_proxy_invalid(proxy.url)  # \u53ef\u4ee5\u4e3b\u52a8\u6807\u8bb0\u4ee3\u7406\u4e3a\u65e0\u6548\n  \n```\n\n### 2.1 init project\n\n```bash\npoetry install -v\n```\n\n### 2.2 usage\n\nTODO\n\n## 3. Develop\n\nYou may need to read the [develop document](./docs/development.md) to use SRC Layout in your IDE.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "My Awesome Project!",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8a8807ea9564952765e55565e8bce99aa4712cd101fa00f1a4a5c891fe40337c",
                "md5": "602093806cd89e92470c08dbf4e15a75",
                "sha256": "61559f24541d8f8b5c6426cedc918ac1425e53574490b6f7102c32b1c22fac18"
            },
            "downloads": -1,
            "filename": "xproxy-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "602093806cd89e92470c08dbf4e15a75",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 8004,
            "upload_time": "2024-10-15T13:30:50",
            "upload_time_iso_8601": "2024-10-15T13:30:50.052179Z",
            "url": "https://files.pythonhosted.org/packages/8a/88/07ea9564952765e55565e8bce99aa4712cd101fa00f1a4a5c891fe40337c/xproxy-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e7ce95bd905a6d1d3d84b996da79c24296e91b95044df378d007005a6c7302c7",
                "md5": "f5ba5db14cb46cba0d4be9f9703b63d3",
                "sha256": "90cfaad1ae74ebdbe96d870d866cb99e40964d9ab777e81c47f5e4fe096dc600"
            },
            "downloads": -1,
            "filename": "xproxy-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f5ba5db14cb46cba0d4be9f9703b63d3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 6853,
            "upload_time": "2024-10-15T13:30:52",
            "upload_time_iso_8601": "2024-10-15T13:30:52.141999Z",
            "url": "https://files.pythonhosted.org/packages/e7/ce/95bd905a6d1d3d84b996da79c24296e91b95044df378d007005a6c7302c7/xproxy-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-15 13:30:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "xproxy"
}
        
Elapsed time: 1.20038s