/// <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)); } }
/// <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)); } }