ApiProxy
Provide dynamic proxy capabilities for py, supporting socks, socks5, http and other formats of URL
Install / Use
/learn @test741123/ApiProxyREADME
快捷使用
安装库
- pip install ApiProxy
编译库
- python ./setup.py sdist bdist_wheel
- pip install .\ApiProxy-1.0-py3-none-any.whl
上传库
- twine upload dist/*
卸载库
- pip uninstall ApiProxy
场景1-设置dp代理,支持socks代理
from DrissionPage import ChromiumPage,ChromiumOptions
from ApiProxy import Proxy
a=Proxy(8993,8996)
data=a.setproxyIp("http://183.158.146.144:40023")
proxyurl=data["url"]
print("proxyurl:",proxyurl)
co=ChromiumOptions()
co.set_proxy(proxyurl)
page=ChromiumPage(addr_or_opts=co)
page.get("https://www.baidu.com")
input("等待输入")
场景2-使用dp动态代理切换,支持socks代理
from DrissionPage import ChromiumPage,ChromiumOptions
from ApiProxy import Proxy
a=Proxy(8993,8996)
data=a.setproxyIp("http://183.158.146.144:40023")
proxyurl=data["url"]
print("proxyurl:",proxyurl)
co=ChromiumOptions()
co.set_proxy(proxyurl)
page=ChromiumPage(addr_or_opts=co)
page.get("https://www.ip138.com")
input("第一次切换ip")
# 再次切换代理
a.switchproxyIp("http://49.87.97.136:40007")
page.get("https://www.ip138.com")
input("第二次切换ip")
打包避坑指南(二选一)
- 使用PyInstaller的add_data参数,将dependencies依赖文件打包进去,否则无法使用proxy.py中的代码
- 编辑打包的spec文件,将datas字段赋值如下:datas = [('dependencies','dependencies')] ,第二个dependencies填写本库的依赖文件夹路径
接下来计划
- 重构apiproxy,使apiproxy支持代理链,sock5代理,全局上游代理,动态更换代理,以及对指定url进行切换代理
- 支持tls随机指纹
- 支持整个代理端的所有接口监听,比起dp原生监听不会存在多个嵌套页面接口漏的情况
