火车头数据采集平台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) 浏览(9274)

将采集器运行中的所有日志保存到文本中

作者:小文 发布于:2013-3-13 13:30 Wednesday 分类:开发计划

应部分企业客户要求,软件增加了一个日志统计功能。软件会将运行中在任务运行窗口所有显示的日志保存到txt文件中。

开启该功能的方法及使用方法如下:

新建一个空白文本文件logtofile.txt,将该文件放在目录 Configration 下,然后程序就会生成 Logs\任务id\时间.txt 这样的日志文件,用户直接访问那些文件就可以了。

请需要该功能的用户下载3.13号的手动更新(3.13后公开发布的版本已经有此功能)

评论(0) 引用(0) 浏览(5001)

火车采集器应用程序退出监视工具

作者:小文 发布于:2013-2-2 14:00 Saturday 分类:其它资源

采集器有时采集大量数据时运行时间久了,可能会出现内存溢出或其它问题而退出。出现这种情况时而用户不在电脑前,就很麻烦了。

点击查看原图

现在我们做了一个小工具,用来监控采集器的运行情况,采集器退出后,它会重新启动采集器。这个工具的运行时间是10秒检测一次,用户也可以添加多个采集器或其它程序,操作简单。

需要注意的一点是,win7系统请关闭uac功能,否则会出现这个窗口而采集器不能启动了。关闭方法见http://zhidao.baidu.com/question/357906056.html

 点击查看原图

标签: 重启

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

修改数据库密码后更改采集器配置的方法

作者:小文 发布于:2013-2-1 16:59 Friday 分类:常见问题

很多用户使用mysql或是sqlserver做为采集器本地保存数据库。有时因为需求修改了数据库的密码,采集器就无法运行了。我们需要关闭采集器,然后修改配置文件。

V7版本

打开 Extensions\LocoySpider\Database.xml 文件,修改其中对应的密码,然后再保存这个文件,再启动采集器即可。 

V8版本

打开 Configuration\Database.xml 文件,修改其中对应的密码,然后再保存这个文件,再启动采集器即可。

评论(0) 引用(0) 浏览(4453)

采集器中同义词替换功能的使用

作者:小文 发布于:2012-12-12 9:40 Wednesday 分类:软件培训

火车采集器中提供了内容替换和同义词替换两种替换方式,用来处理单个少理的替换和批量的替换。其中,同义词替换不仅是做同义词的替换,还可以做其它的替换。比如

我 们采集的某个标签是 省份 ,实际上我们采集到的是比如 陕西省,安徽省 这样的中文,但我们要发布或是导入数据库时,是要使用省份对应的id,比如陕西省的对应的是 12,安徽对应的是26,则我们可以在标签中通过同义词替换批量替换成数字,然后我们在发布时,使用该数字即可。

 

阅读全文>>

标签: 同义词替换

评论(2) 引用(0) 浏览(9271)

Powered by emlog