pwproxy


Namepwproxy JSON
Version 1.1.2 PyPI version JSON
download
home_page
SummaryImplement the core functions of mitmproxy based on playwright: request interception, response tampering
upload_time2023-06-07 15:28:05
maintainer
docs_urlNone
author
requires_python>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pwproxy

<hr>

> 基于playwright实现mitmproxy的核心功能:请求拦截,响应篡改<br>

优点

1. 基于playwright,直接调用本地浏览器,不用以设置代理的方式启动浏览器, mitmproxy必须以冷启动设置代理的方法启动本地浏览器才能实现拦截
2. 不需要考虑安全证书的问题

# 安装

`pip install pwproxy`

# 使用

<hr>
目录结构:<br>

```python
├─run.py
├─demo.py
```

```python
# run.py
from pwproxy.run import Run

Run.run("demo.py", url="http://example.com/")
```

```python
# demo.py
from playwright.sync_api import Route


def replace_resp(route: Route):
    if "http://example.com/" in route.request.url:
        response = route.fetch()
        body = response.text()
        body = body.replace("Example Domain", "Goodo")
        route.fulfill(
            body=body
        )

addons = [
    replace_resp
]
```



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pwproxy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "gaochuang <895091550@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/d3/7c/e28b0d7dd3a55c1846fcf9c5cb0d6baf008995f5e87b99368b8743a76825/pwproxy-1.1.2.tar.gz",
    "platform": null,
    "description": "# pwproxy\n\n<hr>\n\n> \u57fa\u4e8eplaywright\u5b9e\u73b0mitmproxy\u7684\u6838\u5fc3\u529f\u80fd:\u8bf7\u6c42\u62e6\u622a,\u54cd\u5e94\u7be1\u6539<br>\n\n\u4f18\u70b9\n\n1. \u57fa\u4e8eplaywright\uff0c\u76f4\u63a5\u8c03\u7528\u672c\u5730\u6d4f\u89c8\u5668\uff0c\u4e0d\u7528\u4ee5\u8bbe\u7f6e\u4ee3\u7406\u7684\u65b9\u5f0f\u542f\u52a8\u6d4f\u89c8\u5668, mitmproxy\u5fc5\u987b\u4ee5\u51b7\u542f\u52a8\u8bbe\u7f6e\u4ee3\u7406\u7684\u65b9\u6cd5\u542f\u52a8\u672c\u5730\u6d4f\u89c8\u5668\u624d\u80fd\u5b9e\u73b0\u62e6\u622a\n2. \u4e0d\u9700\u8981\u8003\u8651\u5b89\u5168\u8bc1\u4e66\u7684\u95ee\u9898\n\n# \u5b89\u88c5\n\n`pip install pwproxy`\n\n# \u4f7f\u7528\n\n<hr>\n\u76ee\u5f55\u7ed3\u6784:<br>\n\n```python\n\u251c\u2500run.py\n\u251c\u2500demo.py\n```\n\n```python\n# run.py\nfrom pwproxy.run import Run\n\nRun.run(\"demo.py\", url=\"http://example.com/\")\n```\n\n```python\n# demo.py\nfrom playwright.sync_api import Route\n\n\ndef replace_resp(route: Route):\n    if \"http://example.com/\" in route.request.url:\n        response = route.fetch()\n        body = response.text()\n        body = body.replace(\"Example Domain\", \"Goodo\")\n        route.fulfill(\n            body=body\n        )\n\naddons = [\n    replace_resp\n]\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Implement the core functions of mitmproxy based on playwright: request interception, response tampering",
    "version": "1.1.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3554dffa7c2eaa48b5590ec915555f532f5c3f3cc7a6001236888aa7561549e4",
                "md5": "ff7232a55c743ffe827d1e67bb8fbd30",
                "sha256": "82a36cf8822566ff4ecac6c72ea846db7ed6d3b1dd8ccafb808733a566d10b74"
            },
            "downloads": -1,
            "filename": "pwproxy-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ff7232a55c743ffe827d1e67bb8fbd30",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 4061,
            "upload_time": "2023-06-07T15:28:03",
            "upload_time_iso_8601": "2023-06-07T15:28:03.459946Z",
            "url": "https://files.pythonhosted.org/packages/35/54/dffa7c2eaa48b5590ec915555f532f5c3f3cc7a6001236888aa7561549e4/pwproxy-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d37ce28b0d7dd3a55c1846fcf9c5cb0d6baf008995f5e87b99368b8743a76825",
                "md5": "2d690234054d917bc872e136f3766ee8",
                "sha256": "164d06703b50a2219f04e140e9a43f8da0dada1a1aee54494da174b6021c7001"
            },
            "downloads": -1,
            "filename": "pwproxy-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "2d690234054d917bc872e136f3766ee8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 3411,
            "upload_time": "2023-06-07T15:28:05",
            "upload_time_iso_8601": "2023-06-07T15:28:05.051317Z",
            "url": "https://files.pythonhosted.org/packages/d3/7c/e28b0d7dd3a55c1846fcf9c5cb0d6baf008995f5e87b99368b8743a76825/pwproxy-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-07 15:28:05",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pwproxy"
}
        
Elapsed time: 0.08055s