火车头数据采集平台Web发布模块插件的开发文档

作者:小文 发布于:2013-3-21 10:50 Thursday 分类:软件培训

v7版本在web发布时也添加了一个新的插件功能。该插件功能可以让用户自由的设置如何发布,从而可以发内容到各种各样的网站上去。用户在开发时,需要实现采集器System目录下的AppInterFace.dll文件中的IWebPost接口(在实际开发中,不能直接引用System\AppInterFace.dll文件。要引用Extensions\LocoySpider\Develop\Releas\中的没有加密的AppInterFace.dll,开发完成后,将除过AppInterFace.dll外的其它的用户自己使用的类库放在采集器目录下,插件导入模块中即可),然后在发布模块中,添加该插件即可。

点击查看原图

需要注意的一点是,SetModule方法中的参数暂时不对用户开放的。

 

using System;
using System.Collections.Generic;
using System.Text;

namespace LeWell.Api
{
    /// <summary>
    /// web在线发布接口
    /// </summary>
    public interface IWebPost:ICloneable,IDisposable
    {
        /// <summary>
        /// 设置模块的信息,方便插件使用
        /// </summary>
        /// <param name="moudle"></param>
        /// <param name="table"></param>
        void SetModule(object moudle, object table);

        /// <summary>
        /// bool方法出错后的提示信息
        /// </summary>
        string Error { get; }

        /// <summary>
        /// 是否启用登陆网站
        /// </summary>
        bool UseLogin { get; }

        /// <summary>
        /// 登陆网站
        /// </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>
        /// 获取随机值
        /// </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);
    }
}

标签: 开发.web发布

评论(1) 引用(0) 浏览(9275)

Powered by emlog