Html代码白名单过滤插件(C#)

作者:小文 发布于:2010-10-18 9:28 Monday

分类:免费插件

该插件将过滤掉所有除需要外的html代码.在处理前您需要使用采集器过滤js,css等代码.您可以下载该插件或是自己修改代码以达到自己的需要.

插件主要源码:

using System;

using System.IO;

using System.Reflection;

using System.Runtime.CompilerServices;

using System.Text;

using System.Windows.Forms;

using System.Collections;

using System.Collections.Generic;

/*注意事项

* 1.这个命名空间不能更改.当然,你可以在其它的文件里使用其它的命名空间,在这里使用.

* 2.必须引用采集器目录下的LeWell.dll文件.

* 3.必须实现 IPlugin接口 里的 Run 方法

* 4.编写过程出请对传入传出的参数进行检测

* */

namespace LeWell.Plugins

{

public class Demo : LeWell.Plugins.IPlugin   //使用的IPlugin接口,请引用 LeWell.Plugins.dll 文件

{

///

/// 插件运行处理预留方法

///

/// 要处理的源代码

/// 采集页面地址

/// 页面类型为一枚举 LeWell.Plugins.PageType ,其中List,Pages,Content,Save分别代表列表页,分页或多页,默认页,保存时

/// 页面编码

/// 网站的cookies

///

public string Run(string str, string pageurl, LeWell.Plugins.PageType pagetype, Encoding encoding, System.Net.CookieCollection cookies)

{

请在这里执行您的操作,返回string

//string result = "这个结果是单页面测试,后边的数据为程序接收到的数据:\r\n\r\n";

//result += "当前的页面网址为:" + pageurl.ToString() + "\r\n";

//result += "当前的页面类型为:" + pagetype.ToString() + "\r\n";

//result += "当前的网页编码为:" + encoding.ToString() + "\r\n";

//result += "当前网页的代码为:" + str.ToString() + "\r\n";

return str;

}

///

/// 这个是用来在最后处理采集器入库前的数据的

///

///

///

///

///

///

public Hashtable Run(Hashtable ht, string pageurl, Encoding encoding, System.Net.CookieCollection cookies)

{

System.Collections.Generic.List list = new System.Collections.Generic.List();

if (ht.ContainsKey("内容"))

{

string data = ht["内容"].ToString();

if (string.IsNullOrEmpty(data)) return ht;

list.Add("div");

list.Add("ul");

list.Add("dt");

list.Add("dl");

list.Add("dd");

list.Add("table");

list.Add("tbody");

list.Add("tr");

list.Add("td");

list.Add("p");

foreach (string s in list)

{

data = System.Text.RegularExpressions.Regex.Replace(data, "]*?>", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

data = System.Text.RegularExpressions.Regex.Replace(data, "", "ASDFGHJKL$1" + s, System.Text.RegularExpressions.RegexOptions.IgnoreCase);

}

data = System.Text.RegularExpressions.Regex.Replace(data, "
", "QWERTYUIOPB", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

List> dic = new List>();

System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("]*?>[^", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

System.Text.RegularExpressions.MatchCollection mc = regex.Matches(data);

foreach (System.Text.RegularExpressions.Match m in mc)

{

dic.Add(new KeyValuePair(m.Value, base64_encode(m.Value)));

}

regex = new System.Text.RegularExpressions.Regex("]*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);

mc = regex.Matches(data);

foreach (System.Text.RegularExpressions.Match m in mc)

{

dic.Add(new KeyValuePair(m.Value, base64_encode(m.Value)));

}

data = System.Text.RegularExpressions.Regex.Replace(data,"]*?>", "");

foreach (KeyValuePair kv in dic)

{

data = data.Replace(kv.Value, kv.Key);

}

foreach (string s in list)

{

data = data.Replace("ASDFGHJKL" + s, "");

data = data.Replace("ASDFGHJKL/" + s, "" + s + ">");

}

data = data.Replace("QWERTYUIOPB","
");

ht["内容"] = data;

}

return ht;

}

///

///Base64加密

///

/// 返回string

public  string base64_encode(string s)

{

string strResult = "";

if ((s != null) && (s != ""))

{

strResult = Convert.ToBase64String(System.Text.ASCIIEncoding.Default.GetBytes(s));

}

return strResult;

}

///

///Base64解密

///

/// 返回string

public  string base64_decode(string s)

{

string strResult = "";

if ((s != null) && (s != ""))

{

int buling = s.Length % 4;

if (buling == 3) s = s + "=";

else if (buling == 2) s = s + "==";

else if (buling == 1) s = s.Substring(0, s.Length - 1);

strResult = System.Text.ASCIIEncoding.Default.GetString(Convert.FromBase64String(s));

}

return strResult;

}

}

}

附件下载:

白名单过滤插件.7z 9.21KB

标签:过滤

发表评论:

昵称

邮件地址 (选填)

个人主页 (选填)

火车采集器 免费版 html标签排除,Html代码白名单过滤插件(C#)相关推荐

  1. 信息采集-火车采集器

    最近一位同事提出要采集alibaba上的公司信息,关键词是工业加湿器. 主管把任务分配给我后,推荐了一款软件,火车采集器(真心不是做广告). 研究了两天,还算简单,除了正则表达式似懂非懂,其他都还好, ...

  2. 火车采集器-对在固定网页上进行更新的文件的下载方法

    遇到的案例是这样的,在http://www.xxx.com/index.html 上有多个pdf的下载连接,不定时会有新的pdf增加(下载链接有变化),现在需要监控网页变化,并下载新增加的文件. 直接 ...

  3. php耳朵音乐cns_PHPCNS火车采集器使用教程

    火车采集器(LocoySpider) 是一个供各大主流文章系统,论坛系统等使用的多线程内容采集发布程序.使用火车采集器,你可以瞬间建立一个拥有庞大内容的网站.系统支持远程图片下载,图片批量水印,Fla ...

  4. python调用按键精灵插件_谈一谈火车采集器的插件使用

    ​ 火车采集器.火车浏览器这两款软件大家在平常工作中应该经常使用吧,有数据采集需求和各类公司运营人员想必都亲自使用过这个软件吧! 今天小编就与大家分享下两款软件所支持的插件,并讲解下每款插件的功能.一 ...

  5. 网络爬虫软件(火车采集器)

    网络爬虫软件(火车采集器) 软件下载:火车采集器 下载好软件后注册一个账号 安装完成后登录账号 输入起始网址 如图: 保存后点击开始 如图:

  6. Dedecms 火车采集器免登陆发布接口,自动生成上下篇、栏目页、首页

    <?php /********密码验证***********/ $password='123456'; //这个密码是登陆验证用的.您需要在模块里设置和这里一样的密码....注意一定需要修改. ...

  7. 火车头采集保存html,火车头采集器用正则提取方式获取当前页面URL

    火车采集器虽然能够采集到url,但如果我们内容中想要引用这个url怎么搞呢? 利用火车头采集获取当前网址url参数可以从URL里截取有用的信息发布到自己的网站上去.接下来就教大家如何获取: 火车头采集 ...

  8. 最大化参数 火车头_火车头采集器菜鸟使用手册

    <火车头采集器菜鸟使用手册>由会员分享,可在线阅读,更多相关<火车头采集器菜鸟使用手册(36页珍藏版)>请在人人文库网上搜索. 1.www.okyanli.com OK眼力 精 ...

  9. 门户通专访李进斌:火车头采集器-站长的伴侣

    本次采访站长是火车头采集器网站 (http://www.locoy.com/)站长李进斌.             采访人:一滴水 被采访人:李进斌 火车头采集器站长李进斌(门户通网站配图)      ...

最新文章

  1. 一文概览深度学习中的激活函数
  2. 有雄心的男人才有出息
  3. 脑机接口需要我们掌握什么样的知识?
  4. 一张照片攻破人脸识别系统:能点头摇头张嘴
  5. 计算机科学CSTA,学编程,搞懂CSTA K-12计算机科学学习标准
  6. [BZOJ2730][HNOI2012]矿场搭建(求割点)
  7. notepad++的好用快捷键整理
  8. HTML5如何控制暂停播放停止
  9. 适用于Photoshop的人像美容磨皮ps插件:Beauty Retouch Panel 2021 Mac
  10. 小爱同学App下架苹果App Store 网友:SiriOS警告?
  11. 【Java】JSON转EXCEL,支持多个数组生成多个sheet、附表头替换
  12. H3C华三路由器nat避免生成null 0路由并解决nat需求
  13. java获取文件编码
  14. 平均年薪50.8万,数据人拿下这个证书有多香?!
  15. golang学习笔记
  16. 数字IC手撕代码-乐鑫科技笔试真题(4倍频)
  17. 毕夏钟伟强沧桑战全场泪奔
  18. [转]关于openstack的一些废话(非技术)
  19. TopCoder SRM 574
  20. 【固定资产管理系统——开题报告 分享(仅供参考呀)】

热门文章

  1. 谷歌开源Android上Roboto无衬线字体家族
  2. 微信公众号授权(前端)
  3. vue3项目ts文件引入LodopFuncs.js打印控件
  4. python cox回归_数据分析|回归分析(RPython)
  5. windows下安装chardet
  6. python开发一个简单的聊天室
  7. aes解密流程图_aes流程图
  8. Microsoft Office SharePoint Server 2007的文件目录结构
  9. android app定时提醒,安卓手机上有没有每10分钟间隔定时提醒一次的便签app软件?...
  10. CAD无法拖动工具栏或菜单解决方法