Blog / 阅读

2014火车头C#插件开发Demo

by admin on 2014-03-19 12:57:09 in ,



火车头目前来说是最NX的一款多功能采集器了,而且开放性很好,提供了PHP插件和C#插件两种,可以让开发人员自行处理数据。

我个人也是刚接触,算是抛砖引玉。


首先编写C#插件需要首先引用两个DLL。分别是System目录下的super.dll,AppInterFace.dll两个火车头自带的DLL文件


ChangeHtml 函数是处理标签之前HTML代码。 因为官方文档颇少,我也只是从此函数入手了。

比如我要处理一段代码,将处理后的代码加上我自己定义的标签。然后在火车头标签处开始和结束分别输入  [item1] , [/item1] 即可获取到我处理后的代码。


最后返回  return originalHtml + "[item1]" + 处理后的代码变量+ "[/item1]";


下面是我抠的一段demo


using System;
using System.Collections.Generic;
using System.Web;
using System.Text;
using System.Text.RegularExpressions;


namespace XyLocoy
{
    public class XyLocoy : LeWell.Api.ISuperJob, LeWell.Api.ILocoySpider
    {


        #region ISuperJob 成员


        public void ChangeArticle(int level, Dictionary<string, List<string>> dic, string pageurl, string html)
        {
            //不操作
        }


        public string ChangeHtml(int level, string originalHtml, System.Net.WebHeaderCollection request, System.Net.WebHeaderCollection response, string pageurl)
        {
             这里操作 originalHtml 为未处理过的获取到的html代码
             return originalHtml;
        }
        public void ChangeWebRequest(int level, ref System.Net.HttpWebRequest request)
        {
            //不操作
        }


        public string GetMultPageUrl(string multPageName, string pageurl, string html, string multPageStyle, string multPageCombine)
        {
            return null;
        }


        public List<string> GetPagesUrl(int level, string pageurl, string html, string pagesStyle, string pagesCombine)
        {
            return null;
        }


        public bool UseChangeWebRequest
        {
            get { return false; }
        }


        public bool UseGetMultPageUrl
        {
            get { return false; }
        }


        public bool UseGetPagesUrl
        {
            get { return false; }
        }


        #endregion


        #region ICloneable 成员


        public object Clone()
        {
            return this.MemberwiseClone();
        }


        #endregion


        #region IDisposable 成员


        public void Dispose()
        {
            //不操作
        }


        #endregion


        #region ILocoySpider 成员


        public void ChangeResultDic(Dictionary<string, string> dic)
        {
            //无处理
        }


        public string ChangeStepHtml(string pageurl, string html, System.Net.WebHeaderCollection request, System.Net.WebHeaderCollection response)
        {
            return html;
        }


        public void ChangeStepRequest(ref System.Net.HttpWebRequest request)
        {
            //不处理
        }


        public List<KeyValuePair<string, Dictionary<string, string>>> GetStepUrls(string html, string areaStart, string areaEnd, string urlStyle, string urlCombine, string allow, string forbidden)
        {
            return null;
        }


        public List<string> MakeStartAddress(string urlData, string useragent, string refer, System.Net.CookieCollection cookie)
        {
            return null;
        }


        public bool UseGetStepUrls
        {
            get { return false; }
        }


        public bool UseMakeStartAddress
        {
            get { return false; }
        }


        #endregion




        #region ILocoySpider 成员




        public void ChangeSaveFiles(Dictionary<string, Dictionary<string, KeyValuePair<string, string>>> fieldandfiles, Dictionary<string, string> dic)
        {


        }


        public string EndJob(bool handstop, string jobname, string jobid, int url, int content, int post, object job)
        {
            return null;
        }


        public string StartJob()
        {
            return null;
        }


        public bool UseChangeSaveFiles
        {
            get { return false; }
        }


        #endregion
    }
}




写评论

相关文章

上一篇:map中如何遍历数据

下一篇:DES加密算法详解- -

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云