关于fiddler抓包一键生成python脚本
本人贡献一篇关于抓包转换成脚本的文章
步骤一
打开fiddler,抓到包之后,保存成txt文件

步骤二
脚本里str_filename改成保存的文件名

步骤三
执行脚本一键转换
附上脚本,感谢关注~
# -*- coding: utf-8 -*-
# @File    : fiddler_code.py
# @Time    : 2021-12-16 15:11
# @Author  : dyk
# @Email   : 1427950904@qq.com
# @Software: PyCharm
str_filename = "create_custom.txt"
# save_name = "re_test.py"
save_name = str_filename.replace("txt", "py")
class FidToPy():
    def __init__(self, str_name, sa_name):
        self.str_filename = str_name
        self.save_name = sa_name
        self.text = ""
        self.url_list = []
        self.headers = {}
        self.cookies = {}
        self.data = {}
    def get_url(self):
        infos = self.text.split("\n")[0]
        self.url_list = [infos.split(" ")[0], infos.split(" ")[1]]
    def get_headers(self):
        infos = self.text.split("\n")[1:]
        info = ""
        for i in infos:
            if "Cookie: " in i:
                break
            info += i + "\n"
        headers = info.split("\n")
        while "" in headers:
            headers.remove("")
        for i in headers:
            if ": " not in i:
                break
            self.headers[i.split(": ")[0]] = i.split(": ")[1]
    def get_cookies(self):
        infos = self.text.split("\n")[1:]
        cookies_flag = 0
        for i in infos:
            if "Cookie: " in i:
                self.cookies = i.replace("Cookie: ", "")
                print(self.cookies)
                cookies_flag = 1
                break
        if cookies_flag == 1:
            self.cookies = {i.split("=")[0]: i.split("=")[1] for i in self.cookies.split("; ")}
    def get_data(self):
        try:
            infos = self.text.split("\n")
            for i in range(2, len(infos)):
                if infos[i - 1] == "" and "HTTP" in infos[i + 1]:
                    self.data = infos[i]
                    break
            self.data = {i.split("=")[0]: i.split("=")[1] for i in self.data.split("&")}
        except:
            pass
    def get_req(self):
        info_beg = "#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport requests\nimport json\n"
        info_url = "url = \'{}\'\n".format(self.url_list[1])
        info_headers = "headers = {}\n".format(self.headers)
        info_cookies = "cookies = {}\n".format(self.cookies)
        info_data = "data = {}\n\n".format(self.data)
        if "GET" in self.url_list[0]:
            info_req = "html = requests.get(url, headers=headers,  cookies=cookies)\n"
        else:
            info_req = "html = requests.post(url, headers=headers,  cookies=cookies, data=json.dumps(data))\n"
        info_end = "print(html.text)\nprint(html.status_code)\n"
        text = info_beg + info_url + info_headers + info_cookies + info_data + info_req + info_end
        with open(save_name, "w+", encoding="utf8") as p:
            p.write(text)
        print("转化成功!!")
        print(save_name, "文件保存!")
    def read_infos(self):
        with open(self.str_filename, "r+", encoding="utf-8") as p:
            old_line = ""
            for line in p:
                if old_line == b"\n" and line.encode() == b"\n":
                    break
                old_line = line.encode()
                self.text += old_line.decode()
        # print("self.text:", self.text)
    def start(self):
        self.read_infos()
        self.get_url()
        self.get_headers()
        self.get_cookies()
        self.get_data()
        print("self.url_list:", self.url_list)
        print("self.headers:", self.headers)
        print("self.cookies:", self.cookies)
        print("self.data:", self.data)
        self.get_req()
if __name__ == '__main__':
    f = FidToPy(str_filename, save_name)
    f.start()
												
											关于fiddler抓包一键生成python脚本的更多相关文章
- Fiddler抓包一键生成代码
		
首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...
 - jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本
		
Fiddler是目前最常用的抓包工具之一,它作为客户端和服务器端之间的代理,记录客户端和服务器之间的所有请求(http/https),可以针对特定的请求过滤,分析请求和响应的数据.设置断点.调试.修改 ...
 - Python+Requests接口测试教程(1):Fiddler抓包工具
		
本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...
 - Fiddler抓包调试前端脚本代码
		
0.写在前面的话 之前看了阮一峰老师关于互联网协议入门的博客,受益匪浅,接着再去体会了下HTTP协议,就想着看实际网络访问中的那些HTTP请求头和响应是什么样的.Chrome的调试工具的Network ...
 - jmeter压测数据库,抓包工具,python基础
		
jmeter压力测试 前提场景的设置:单场景(单个接口进行压力测试一个请求)或混合场景(有业务流程的场景进行压力测试多个请求),压测时间一般在5--1515分组具体看需求. 数据准备:数据量少和数据量 ...
 - 转:APP开发浅谈-Fiddler抓包详解
		
原文地址:http://www.luoxudong.com/?p=306 Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今 ...
 - APP开发浅谈-Fiddler抓包详解
		
Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中 ...
 - 【转】Fiddler抓包指南:结合Proxifier工具
		
本文转自:https://blog.csdn.net/china_jeffery/article/details/93000824 本文介绍如何使用Fiddler抓取HTTP和HTTPS协议的包,同时 ...
 - Fiddler抓包原理和使用详解
		
iddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中使 ...
 
随机推荐
- java反射笔记(学习尚硅谷java基础教程)
			
反射一.概述:Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性 ...
 - Vue-cli安装步骤,搭建一个完整的 Vue 项目
			
安装node环境下载 node.js 官网地址:https://nodejs.org/en/ 下载完成后打开然后一路next安装完成后打开 dos 窗口输入命令:node -v 回车会输出node的版 ...
 - 对于 GC 方面,在使用 Elasticsearch 时要注意什么?
			
1.SEE:https://elasticsearch.cn/article/32 2.倒排词典的索引需要常驻内存,无法 GC,需要监控 data node 上 segmentmemory 增长趋势. ...
 - Spring-MVC 里面的ModelAndView
			
作用: 由于本身http是无状态的并不会保存什么请求信息. 但是目标页面可能又需要一些信息.这时候可以用ModelAndView存放一些业务数据之类等.然后返回给页面 用法: 比较重要的方法: 往对 ...
 - Eclipse 从SVN检出项目之《文件夹 “” 已不存在 》
			
1.eclipse 从svn检出项目 报文件夹不存在, 参考博客 https://blog.csdn.net/wenbsu/article/details/80965680 2.You need to ...
 - SQL数据库之IFNULL函数和NULLIF函数
			
学习IFNULL()函数 非空判断 解析 IFNULL(expression1, expression2) 如果expression1为null, 在函数返回expression2,否则将返回expr ...
 - Linux基础学习 | 目录及文件
			
一.目录结构 Linux目录采用树形结构,以根目录/向下延伸呈一个倒置的树的形状. 每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在,就像一棵树的树枝分叉,所有的目录层次结构分明,每个目录 ...
 - H5打造属于自己的视频播放器(JS篇2)
			
回顾 算了不回顾了 直接搞起,打开JS1中写的bvd.js 播放视频 播放按钮隐藏 视频开始播放 当点击播放按钮的时候,播放按钮将会隐藏,播放视频,这个不难,在JS1中我们就已经实现.但我们改变一下思 ...
 - 微信小程序:自定义组件的数据传递
			
一.前言 如果小程序中有可复用的UI且具有一定的功能性,就可以使用自定义组件将其封装起来.下面介绍一个简单的组件和一个复杂的组件. 二.简单的组件(计数器) 1. 组件功能介绍 这个组件常见于外卖软件 ...
 - sqlite的Query方法操作和参数详解
			
query()方法实际上是把select语句拆分成了若干个组成部分,然后作为方法的输入参数: SQLiteDatabase db = databaseHelper.getWritableDatabas ...