⽕车头采集器v7版本c#插件开发说明⽂档教程
⽕车头采集器v7版本插件是使⽤c#插件开发,开发时需要引⽤System⽬录下的AppInerFace.dll类库。或是其它的采集器可以调⽤⽕车头数据采集平台的模块进⾏发布或完成其它任务。
开发插件时需要注意以下⼏个⽅法
A.程序集的⽬标Framework 为 .Net Framework 2.0
B.程序集的⽬标平台为x86
C.插件开发完成后,除插件⽂本本⾝外,其它引⽤的dll⽂件需要放在采集器的System⽬录下。
以下为各个模块插件的开发介绍
1.
⼊库模块可以将传递过来的数据进⾏处理,并返回处理结果给采集器。插件需要实现接⼝ IDatabase。
以下是接⼝的原始代码及注释。如导⼊成功,需要返回bool值,采集器会根据返回值将发布的数据标记为已发或失败。需要注意的⼀点是,Import⽅法中只有字符串键值对,不包含已下载的⽂件信息。
using System;
using System.Collections.Generic;
using System.Text;
namespace LeWell.Api
{
/// <summary>
/// 数据库类型
/// </summary>
public enum DatabaseType {
/// <summary>
/// access数据库
/
// </summary>
Access,
/// <summary>
/// mysql数据库
/// </summary>
MySql,
/// <summary>
/// sqlserver数据库
/// </summary>
SqlServer,
/// <summary>
/
// sqlite数据库
/// </summary>
Sqlite,
/// <summary>
/// mogodb数据库
/// </summary>
MongoDb,
/// <summary>
/// oracle数据库
/// </summary>
Oracle }
/
// <summary>
/// 数据库⼊库接⼝,因为⼊库这块⽐较简单,所以接⼝是接管了所有的数据处理/// </summary>
public interface IDatabase : ICloneable, IDisposable
{
/// <summary>
/// 数据库类型
/// </summary>
DatabaseType DatabaseType { get; set; }
/// <summary>
/// 数据库链接字符串
/// </summary>
string ConnectStr { get; set; }
/// <summary>
/// 数据库表前缀
/// </summary>
string DatabasePrefix { get; set; }
/// <summary>
/// ⼊库模块中的字符串
/// </summary>
string ModuleData { get; set; }
/// <summary>
/// 导⼊数据
/
// </summary>
param name/// <param name=”data”>键值对的数据</param>
/// <param name=”error”>错误信息</param>
/// <returns>是否⼊库成功</returns>
bool Import(Dictionary<string, string> data,ref string error);
}
}
2.
Web发布模块插件相⽐较⼊库插件,可以实现对当前记录所有⽂件的操作处理。该插件需要实现接⼝IWebPost。该接⼝中可操作的⽅法较多,⼀般都有开关控制操作是否起作⽤。如UseLogin ,UseGetList 。
using System;
using System.Collections.Generic;
using System.Text;
namespace LeWell.Api
{
/// <summary>
/// web在线发布接⼝
/// </summary>
public interface IWebPost:ICloneable,IDisposable
{
/// <summary>
/// bool⽅法出错后的提⽰信息
/
// </summary>
string Error { get; }
/// <summary>
/// 是否启⽤登陆⽹站
/// </summary>
bool UseLogin { get; }
/// <summary>
/// <param name=”loginUrl”>登陆地址</param>
/// <param name=”loginRefer”>来源页⾯</param>
/// <param name=”user_agent”>user-agent</param>
/// <param name=”loginImgUrl”>验证码地址</param>
/
// <param name=”dicPost”>登陆post数据</param>
/// <param name=”failInfos”>失败信息,可能为null</param>
/// <param name=”sucessInfos”>成功信息,可能为null</param>
/// <param name=”errorHtml”>登陆失败后的html信息</param>
/// <param name=”cookies”>登陆成功后返回的cookie</param>
/// <returns>是否成功登陆</returns>
bool Login(string loginUrl, string loginRefer,string user_agent, string loginImgUrl, Dictionary<string, string> dicPost, string[] failInfos, string[] sucessInfos, ref string errorHtml,System.Net.CookieCollection cookies);
/// <summary>
/// 是否启⽤获取列表
/// </summary>
bool UseGetList { get; }
/// <summary>
/// 刷新列表
/// </summary>
/// <param name=”refreshUrl”>刷新列表页⾯</param>
/// <param name=”refreshRefer”>来源页⾯</param>
/// <param name=”user_agent”>user-agent</param>
/// <param name=”cookies”>访问需要的cookie</param>
/// <param name=”refreshStart”>页⾯开始区域</param>
/// <param name=”refreshEnd”>页⾯区域结束</param>
/// <param name=”refreshRegex”>分类列表名称及id格式</param>
/
// <param name=”html”>返回的html代码</param>
/// <returns>字典,为分类id,分类名称</returns>
Dictionary<string, string> GetList(string refreshUrl, string refreshRefer, string user_agent, System.Net.CookieCollection cookies, string refreshStart, string refreshEnd, string refreshRegex, ref string html);
/// <summary>
/// 是否启⽤获取随机值,这个对所有的都有⽤
/// </summary>
bool UseGetFormHash { get; }
/// </summary>
/// <param name=”hashUrl”>随机值获取页⾯</param>
/// <param name=”hashRefer”>来源</param>
/// <param name=”user_agent”>user-agent</param>
/// <param name=”cookies”>⽹站cookie</param>
/// <param name=”hashStart”>随机值前字符串</param>
/// <param name=”hashEnd”>随机值后字符串</param>
/// <param name=”result”></param>
/// <returns>成功否</returns>
bool GetFormHash(string hashUrl, string hashRefer, string user_agent, System.Net.CookieCollection cookies, string hashStart, string hashEnd,ref string result);
/// <summary>
/// 是否启⽤发布数据
/// </summary>
bool UsePost { get; }
/// <summary>
/// 发布⽂章
/// </summary>
/// <param name=”PostUrl”>发表地址</param>
/// <param name=”PostRefer”>来源页</param>
/// <param name=”user_agent”>user-agent</param>
/// <param name=”cookies”>cookie</param>
/// <param name=”dic”>发布的字典值</param>
/// <param name=”uploadFiles”>上传⽂件信息,标签名,对应的多个⽂件</param>
/// <param name=”failInfos”>失败标识码</param>
/// <param name=”sucessInfos”>成功标识码</param>
/
// <param name=”error”>出错信息,因为可能是⼏个线程同时发的,所以不⽤单个实例的出错信息</param>
/// <param name=”sucess”>成功标识码</param>
/// <param name=”html”>返回的html代码</param>
/// <returns>是否发布成功</returns>
bool Post(string PostUrl, string PostRefer, string user_agent, System.Net.CookieCollection cookies, List<KeyValuePair<string, string>> dic, Dictionary<string, List<string>> uploadFiles, string[] failInfos, string[] sucessInfos, ref string error,ref string sucess,ref string html);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论