mitmproxy说明

mitmproxy完整生命周期:

import typing

import mitmproxy.addonmanager
import mitmproxy.connections
import mitmproxy.http
import mitmproxy.log
import mitmproxy.tcp
import mitmproxy.websocket
import mitmproxy.proxy.protocol


class Events:
    # HTTP 生命周期
    def http_connect(self, flow: mitmproxy.http.HTTPFlow):
        """
            http连接
        """

    def requestheaders(self, flow: mitmproxy.http.HTTPFlow):
        """
            读取到http请求头,未读取到body
        """

    def request(self, flow: mitmproxy.http.HTTPFlow):
        """
            读取到完整http请求.
        """

    def responseheaders(self, flow: mitmproxy.http.HTTPFlow):
        """
            读取到响应头,还未获取响应体
        """

    def response(self, flow: mitmproxy.http.HTTPFlow):
        """
            读取到完整的response相应
        """

    def error(self, flow: mitmproxy.http.HTTPFlow):
        """
            http 出错
        """

    # TCP 生命周期
    def tcp_start(self, flow: mitmproxy.tcp.TCPFlow):
        """
            开始tcp连接
        """

    def tcp_message(self, flow: mitmproxy.tcp.TCPFlow):
        """
           tcp连接收到消息
        """

    def tcp_error(self, flow: mitmproxy.tcp.TCPFlow):
        """
            tcp连接出错
        """

    def tcp_end(self, flow: mitmproxy.tcp.TCPFlow):
        """
           tcp连接关闭
        """

    # Websocket 生命周期
    def websocket_handshake(self, flow: mitmproxy.http.HTTPFlow):
        """
            当客户端想建立WebSocket连接时调用
        """

    def websocket_start(self, flow: mitmproxy.websocket.WebSocketFlow):
        """
            开始建立websocket连接
        """

    def websocket_message(self, flow: mitmproxy.websocket.WebSocketFlow):
        """
            收到websocket消息
        """

    def websocket_error(self, flow: mitmproxy.websocket.WebSocketFlow):
        """
            websocket连接出错
        """

    def websocket_end(self, flow: mitmproxy.websocket.WebSocketFlow):
        """
            websocket关闭连接
        """

    # Network 生命周期
    def clientconnect(self, layer: mitmproxy.proxy.protocol.Layer):
        """
            客户端已经连接到mitmproxy
        """

    def clientdisconnect(self, layer: mitmproxy.proxy.protocol.Layer):
        """
            客户端已与mitmproxy断开连接.
        """

    def serverconnect(self, conn: mitmproxy.connections.ServerConnection):
        """
            Mitmproxy已连接到服务器
        """

    def serverdisconnect(self, conn: mitmproxy.connections.ServerConnection):
        """
            Mitmproxy从服务器断开连接
        """

    def next_layer(self, layer: mitmproxy.proxy.protocol.Layer):
        """
            网络层交换
        """

    # General 生命周期
    def configure(self, updated: typing.Set[str]):
        """
            配置更改是 被调用
        """

    def done(self):
        """
            插件关闭时调用
        """

    def load(self, entry: mitmproxy.addonmanager.Loader):
        """
            插件第一次加载时,调用
        """

    def log(self, entry: mitmproxy.log.LogEntry):
        """
            每当通过mitmproxy创建新的日志条目时调用
        """

    def running(self):
        """
            当代理完全启动并运行时调用
        """

    def update(self, flows: typing.Sequence[mitmproxy.flow.Flow]):
        """
            当addons运行的实例发生变动是调用
        """
addons = [
    AddHeader()
]

运行

mitmdump -s 文件名 -p 8080

你可能感兴趣的:(爬虫相关)