Fidder插件自动生成爬虫代码(C#)
原创,效果如下:

1、新建项目,并添加Fidder.exe的引用:

2、添加代码
[assembly: Fiddler.RequiredVersion("2.2.8.6")]
using Fiddler;
using System;
using System.Windows.Forms;
public class MyExtension : IHandleExecAction, IFiddlerExtension
{
private TabPage tabPage; //创建插件的选项卡页
private UserControl myCtrl; //UserControl
public MyExtension()
{
#region makeUC
var uc = new System.Windows.Forms.UserControl();
var txtCode = new System.Windows.Forms.RichTextBox();
txtCode.Dock = System.Windows.Forms.DockStyle.Fill;
txtCode.Location = new System.Drawing.Point(, );
txtCode.Name = "txtCode";
txtCode.Size = new System.Drawing.Size(, );
uc.Controls.Add(txtCode);
#endregion
//构造函数中实例化对象
this.myCtrl = uc;
this.myCtrl.Dock = DockStyle.Fill;
this.tabPage = new TabPage("Coder");//选项卡的名字为Test
}
public void OnLoad()
{
//将用户控件添加到选项卡中
this.tabPage.Controls.Add(this.myCtrl);
//为选项卡添加icon图标,这里使用Fiddler 自带的
this.tabPage.ImageIndex = (int)Fiddler.SessionIcons.Timeline;
//将tabTage选项卡添加到Fidder UI的Tab 页集合中
FiddlerApplication.UI.tabsViews.TabPages.Add(this.tabPage);
FiddlerApplication.UI.lvSessions.SelectedIndexChanged += LvSessions_SelectedIndexChanged;
}
public void OnBeforeUnload()
{
}
private void LvSessions_SelectedIndexChanged(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var sessions = FiddlerApplication.UI.GetSelectedSessions();
if (sessions != null)
{
if (sessions.Length > )
{
sb.Append(" HttpHelper httpHelper = new HttpHelper();\r\n");
}
foreach (var item in sessions)
{
sb.Append(Raw2Code(item.RequestHeaders.ToString(true, true, true)));
}
}
myCtrl.Controls[].Text = sb.ToString();
}
private string Raw2Code(string rawText)
{
return "请加QQ:351392535;www.shujucaiji.cn";
}
bool IHandleExecAction.OnExecAction(string sCommand)
{
string[] strArray = Utilities.Parameterize(sCommand);
var aa = FiddlerApplication.UI.GetAllSessions();
return true;
}
//public void AutoTamperRequestBefore(Session oSession)
//{
// /*在这编写请求之前需要执行的code */
//}
//public void AutoTamperRequestAfter(Session oSession)
//{
// /*在这编写请求之后需要执行的code */
//}
//public void AutoTamperResponseBefore(Session oSession)
//{
// /*在这编写响应之前需要执行的code */
// myCtrl.txtCode.Text = Raw2Code(oSession.RequestHeaders.ToString(true, true, true));
//}
//public void AutoTamperResponseAfter(Session oSession)
//{
// /*在这编写响应之后需要执行的code */
//}
//public void OnBeforeReturningError(Session oSession)
//{
// /*在这编写有错误返回时需要执行的code */
//}
}
3、编译并将dll拷贝到Fidder的Script目录下。
或者在:后期生成事件命令行中添加:copy "$(TargetPath)" "%ProgramFiles%\Fiddler2\Scripts\$(TargetFilename)"

4、打开Fidder
Fidder插件自动生成爬虫代码(C#)的更多相关文章
- SpringBoot系列: 使用MyBatis maven插件自动生成java代码
====================================pom.xml 文件====================================需要在 pom.xml 文件增加 m ...
- 【mybatis源码学习】利用maven插件自动生成mybatis代码
[一]在要生成代码的项目模块的pom.xml文件中添加maven插件 <!--mybatis代码生成器--> <plugin> <groupId>org.mybat ...
- Eclipse 使用mybatis generator插件自动生成代码
Eclipse 使用mybatis generator插件自动生成代码 标签: mybatis 2016-12-07 15:10 5247人阅读 评论(0) 收藏 举报 .embody{ paddin ...
- 使用Mybatis Generator插件自动生成映射文件(cmd无法进入文件,dns服务器对区域没有权威等问题)遇到问题
使用Mybatis Genertor插件自动生MyBatis所需要的DAO接口,实体模型类,Mapping映射文件,将生成的代码赋值到项目工程中即可. 有命令行,Eclipse插 ...
- Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类
Intellij IDEA集成mybatis-generator插件自动生成数据库实体操作类 转载至:https://blog.csdn.net/fishinhouse/article/details ...
- 借Adobe XD之力,自动生成Flutter代码
概述 今天,我们来聊聊一个专门为"懒人程序员"准备的工具--Adobe XD.使用它可以快速将原型设计图转换为可执行的Flutter代码, 而由于Flutter自身跨平台的特性,因 ...
- [Dynamic Language] 用Sphinx自动生成python代码注释文档
用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...
- Mybatis-Generator插件自动生成Dao、Model、Mapping相关文件
最近做项目,mapping 有点多而且容易写错,于是试着用了Mybatis-Generator 插件自动生成 dao, domain mapping 文件.感觉还挺好用.把相关配置分享,一边以后做项 ...
- wsdl自动生成Java代码,根据wsdl生成Java代码
wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...
随机推荐
- Summer training round2 #1
A:水 B:求两个三角形之间的位置关系:相交 相离 内含 ①用三个点是否在三角形内外判断 计算MA*MB.MB*MC.MC*MA的大小 若这三个值同号,那么在三角形的内部,异号在外部 #incl ...
- gson转换问题
list集合中integer问题 List<Integer> lists= gson.fromJson(params.get("lists"), new TypeTok ...
- 前端面试题-CSS优先级
一.选择器优先级 浏览器通过优先级来判断哪一些属性值与一个元素最为相关,从而在该元素上应用这些属性值.优先级是基于不同种类选择器组成的匹配规则. 二.优先级计算 优先级就是分配给指定的CSS声明的一个 ...
- itertools模块、排列、组合、算法
关于列表重组的python小题 题目一:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例:输入: nums = ...
- BAT批处理设置Shift右键cmd菜单
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\shell\runas] [HKEY_CLASSES_ROOT\D ...
- A. Even Substrings
A. Even Substrings time limit per test 0.5 seconds memory limit per test 256 megabytes input standar ...
- Remove the Substring
D2. Remove the Substring (hard version) 思路:其实就是贪心吧,先从前往后找,找到 t 可在 s 中存在的最小位置 (pre),再从后往前找,找到 t 可在 s ...
- 设置iterm可配色
设置终端和ls可配色 终端输入vim ~/.bash_profile 添加如下export #enables colorin the terminal bash shell export export ...
- LeetCode19----删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...
- LeetCode19----删除链表的指定元素
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...