2014火车头C#插件开发Demo

 火车头目前来说是最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
}
}

发表评论

您的电子邮箱地址不会被公开。