关于AnyProxy
- 详细文档链接 http://anyproxy.io/cn/
- anyproxy流程图
简要描述
当http请求经过代理服务器时,具体处理过程是:收集请求所有请求参数,包括method, header, body等
AnyProxy调用规则模块beforeSendRequest方法,由模块做处理,返回新的请求参数,或返回响应内容
如果beforeSendRequest返回了响应内容,则立即把此响应返回到客户端(而不再发送到真正的服务端),流程结束。
根据请求参数,向服务端发出请求,接收服务端响应。
调用规则模块beforeSendResponse方法,由模块对响应内容进行处理
把响应信息返回给客户端
当代理服务器收到https请求时,AnyProxy可以替换证书,对请求做明文解析。调用规则模块beforeDealHttpsRequest方法,如果返回true,会明文解析这个请求,其他请求不处理
被明文解析后的https请求,处理流程同http一致。未明文解析请求不会再进入规则模块做处理。
如何使用AnyProxy
- 安装AnyProxy
npm install -g anyproxy@beta
- 安装证书,明文显示https响应
anyproxy-ca #生成rootCA证书,生成后需要手动信任
运行之后,Windosws生成rootCA.crt证书,位于C:\Users\Administrator\.anyproxy\certificates
Mac(Linux)生成rootCA.key位于~/.anyproxy/certificate 下
双击对应的证书来导入和信任证书
- 开启AnyProxy
启动本地端口8001,并解析所有https请求
http://127.0.0.1:8002/ 监听界面
anyproxy --intercept
手机连接,设置代理
手机WiFi和电脑网络在同一局域网内,修改WiFi网络,设置代理为手动,主机名为电脑ip,端口8001手机安装ca证书
手机浏览器直接访问 http://<HOST_IP>:8002/fetchCrtFile
下载之后点击信任
通过AnyProxy抓取搜狐汽车在售车型
- 通过三个界面抓取品牌,车型,在售年款的https接口
- 通过监听界面
- 获取相对应的接口
https://app.auto.sohu.com/api/car/brands
https://app.auto.sohu.com/api/car/brands/211/models
https://app.auto.sohu.com/api/car/models/5130/trims/onsale?cityCode=110000