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 ...
随机推荐
- POJ2449 K短路模板
#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...
- ffmpeg函数03__av_seek_frame()
当需要把视频跳转到N秒的时候可以使用下面的方法:int64_t timestamp = N * AV_TIME_BASE; av_seek_frame(fmtctx, index_of_video, ...
- Head First设计模式 装饰者模式
装饰器模式 典型的例子:JAVA IO. 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个 ...
- 原生js实现简单的下拉刷新功能
前言: 我们在浏览移动端web页面的时候,经常会用到下拉刷新. 现在我们用原生的js实现这个非常简单的下拉刷新功能. (温馨提示:本文比较基础,功能也很简单.写的不好的地方,希望大神提点一二.) 一. ...
- python类内置方法的再学习
对于__setitem__和__getitem__方法:其入参看来是固定的(__getitem__(self, item),__setitem__(self, key, value)),我们并不需要重 ...
- 【leetcode】960. Delete Columns to Make Sorted III
题目如下: We are given an array A of N lowercase letter strings, all of the same length. Now, we may cho ...
- C# 扩展方法——mysql-dapper(MySqlMapperExtensions)
其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 反射比较耗费性能,反射得到属性进行缓存 根据反射得到的属性,进行动态拼接sql语句 ...
- C语言 - strcpy和strncpy的编程实现及总结
一.字符串的strcpy与strncpy函数 1.编程实现strcpy函数(笔试很容易考到) 要求: 原型:char *stpcpy(char *strDest,char *strSrc); 头文件: ...
- 分块查找(Blocking Search)
1.定义 分块查找(Blocking Search)又称索引顺序查找.它是一种性能介于顺序查找和二分查找之间的查找方法. 2.基本思想 分块查找的基本思想是: (1)首先查找索引表 索引表是有序表,可 ...
- 如何开始使用 Akka
如果你是第一次开始使用 Akka,我们推荐你先运行简单的 Hello World 项目.情况参考 Quickstart Guide 页面中的内容来下载和运行 Hello World 示例程序.上面链 ...