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 ...
随机推荐
- ab测试nginx Nginx性能优化
转自:https://www.cnblogs.com/nulige/p/9369700.html 1.性能优化概述 在做性能优化前, 我们需要对如下进行考虑 1.当前系统结构瓶颈 观察指标 压力测试 ...
- 【洛谷P3128】Max Flow
题目大意:给定一棵 N 个节点的无根树,有 M 个操作,每次选定一条树链,将这条链上所有点的点权 +1,最后求树上点的最大点权是多少. 题解:树上差分算法的应用. 发现操作有 M 次,但是询问只有一次 ...
- Axure案例:用中继器实现便捷好用的3级菜单--转载
提示1:本篇教程可能不太适合新手,以及不了解中继器.全局变量.系统变量等使用的…新手 提示2:文字其实不多,截图太多,所以看上去很长,也可直接翻到末尾查看所有的用例,其实并不多 之前有介绍过使用中继器 ...
- 前端面试题-CSS Hack
一.CSS Hack的概念 由于不同厂商的流览器或某浏览器的不同版本(如IE,Firefox/Safari/Opera/Chrome等),对CSS的支持.解析不一样,导致在不同浏览器的环境中呈现出不一 ...
- js 实现图片预览的两种方式
第一种方式:(使用bloburl) 格式为: blob:http://localhost:8080/9d1c3f82-90ff-4891-a1a3-9cb9a9782899 blob:http://l ...
- [转]C++引用
引用的概念 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 如下:定义引用ra,它是变量a的引用,即别名. i ...
- qt5--自定义控件封装
视频教程地址:https://www.bilibili.com/video/av51766541/?p=30
- 模意义下的FFT算法
//写在前面 单就FFT算法来说的话,下面只给出个人认为比较重要的推导,详细的介绍可参考 FFT算法学习笔记 令v[n]是长度为2N的实序列,V[k]表示该实序列的2N点DFT.定义两个长度为N的实序 ...
- uniapp开发微信小程序跳转出现navigateTo:fail page "pages/user/pages/user/address/address" is not found
在app.json文件中pages中: ,{ "path" : "pages/user/address/address", "style" ...
- Linux 开启相关端口及查看已开启端口
防火墙层面: /sbin/iptables -I INPUT -p tcp --dport 8011 -j ACCEPT #开启8011端口 /etc/rc.d/init.d/iptables ...