예제 #1
0
        /// <summary>
        /// 提取请求结果内容
        /// </summary>
        /// <param name="param">导航地址Url</param>
        private void ExtractContents(string contentUrl)
        {
            try {
                if (this.Action == Config.Action.Stop)
                {
                    return;
                }
                string   htmlText = string.Empty;
                string[] resultRow;

                /*
                 * 描述:
                 * 根据Url地址请求Web服务器并返回一段Html文本,然后根据返回的文本和提取参数构造内容解析对象。
                 *
                 * 步骤:
                 * 1.请求web服务器并返回一段html文本
                 * 2.根据html文本和提取规则实例化一个内容解析对象.
                 * 3.执行Exec方法并返回解析结果。
                 *
                 * 修改标志:王亚 20120424
                 */
                this._HttpHelper._encoding = Encoding.GetEncoding(_TaskConfig.UrlListManager.UrlEncoding);
                htmlText = this._HttpHelper.RequestResult(contentUrl);
                ParseExtractRoles parseHtml = new ParseExtractRoles(
                    _TaskConfig.ExtractionRules,    //提取规则
                    htmlText,                       //html文本
                    _HttpHelper.WebResponse);       //response对象
                resultRow = parseHtml.Exec();       //提取内容


                /*
                 * 描述:
                 * 采集结果处理。
                 *
                 * 步骤:
                 * 1.将采集结果追加
                 * 2.否直接发布采集结果
                 * 3.引发完成一条采集结果事件
                 *
                 * 修改标志: 王亚 20120424
                 */
                if (resultRow != null)
                {
                    this._Results.Rows.Add(resultRow);              //追加采集结果
                }
                if (this.TaskConfig.PublishResultDircetly)
                {
                    PublishResult();                            //发布采集结果
                    Results.Rows.Clear();                       //清除现有的采集结果
                }
                if (this.OnAppendSingleResult != null)
                {
                    this.OnAppendSingleResult(this, resultRow); //引发完成一条采集结果事件
                }
            }
            catch (Exception e) {
                this.AppendLog(string.Format("请求失败:{0} 原因:{1}", contentUrl, e.Message));
            }
        }
예제 #2
0
        /// <summary>
        /// 提取请求结果内容
        /// </summary>
        /// <param name="param">导航地址Url</param>
        private void ExtractContents(string contentUrl) {
            try {
                if (this.Action == Config.Action.Stop) return;
                string htmlText = string.Empty;
                string[] resultRow;

                /*
                 * 描述:
                 * 根据Url地址请求Web服务器并返回一段Html文本,然后根据返回的文本和提取参数构造内容解析对象。
                 * 
                 * 步骤:
                 * 1.请求web服务器并返回一段html文本
                 * 2.根据html文本和提取规则实例化一个内容解析对象.
                 * 3.执行Exec方法并返回解析结果。
                 * 
                 * 修改标志:王亚 20120424
                 */
                this._HttpHelper._encoding = Encoding.GetEncoding(_TaskConfig.UrlListManager.UrlEncoding);
                htmlText = this._HttpHelper.RequestResult(contentUrl);
                ParseExtractRoles parseHtml = new ParseExtractRoles(
                    _TaskConfig.ExtractionRules,    //提取规则
                    htmlText,                       //html文本
                    _HttpHelper.WebResponse);       //response对象
                resultRow = parseHtml.Exec();       //提取内容


                /*
                 * 描述:
                 * 采集结果处理。
                 * 
                 * 步骤:
                 * 1.将采集结果追加
                 * 2.否直接发布采集结果
                 * 3.引发完成一条采集结果事件
                 * 
                 * 修改标志: 王亚 20120424
                 */
                if (resultRow != null) {
                    this._Results.Rows.Add(resultRow);              //追加采集结果
                }
                if (this.TaskConfig.PublishResultDircetly) {
                    PublishResult();                            //发布采集结果
                    Results.Rows.Clear();                       //清除现有的采集结果
                }
                if (this.OnAppendSingleResult != null) {
                    this.OnAppendSingleResult(this, resultRow); //引发完成一条采集结果事件
                }
            }
            catch (Exception e) {
                this.AppendLog(string.Format("请求失败:{0} 原因:{1}", contentUrl, e.Message));
            }
        }