Ejemplo n.º 1
0
        private void btnCoTest_Click(object sender, EventArgs e)
        {
            tabctrCoform.SelectedTab = tabCoTest;
            bool validateResult = validateCoConfig();

            if (!validateResult)
            {
                MessageBox.Show("采集规则未填写完整或未正确填写,请重新填写并保存!");
            }
            else
            {
                //int listStartPageNum = int.Parse(_startPageNumber);
                //int listStopPageNum = int.Parse(_stopPageNumber);
                int           listStartPageNum   = 2;
                int           listStopPageNum    = 5; //因为这里是测试,所以默认只采集到第5页,提升测试速度
                int           arcSubPageStartNum = int.Parse(_arcSubPageStartNum);
                List <string> moreListPages      = new List <string>();
                List <string> subNodeParams      = new List <string>();
                List <string> regexParams        = new List <string>();
                cancelToken = new CancellationTokenSource();
                swGlobal.Start();

                if (!string.IsNullOrWhiteSpace(_moreListPages))
                {
                    string[] moreListPagesArr = tboxMoreListPages.Lines;
                    moreListPages = moreListPagesArr.ToList <string>();
                }
                if (!string.IsNullOrWhiteSpace(_subNodeParams))
                {
                    string[] subNodeParamsArr = tboxSubNodeParams.Lines;
                    subNodeParams = subNodeParamsArr.ToList <string>();
                }
                if (!string.IsNullOrWhiteSpace(_regexParams))
                {
                    string[] regexParamsArr = tboxRegexParams.Lines;
                    regexParams = regexParamsArr.ToList <string>();
                }

                ArticleCollectOffline collectOffline = new ArticleCollectOffline(_cid, _listPath, listStartPageNum, listStopPageNum, _xpathArcurlNode, _xpathTitleNode, _xpathContentNode, subNodeParams, regexParams, _arcSubPageSymbol, arcSubPageStartNum);
                if (moreListPages != null)
                {
                    collectOffline.AddListPages(moreListPages);
                }
                collectOffline.CancelToken = cancelToken;
                CollectProcess collectProcessListPages = new CollectProcess(ProcessListPages);
                collectProcessListPages.BeginInvoke(collectOffline, ProcessListPagesComplete, null);

                //禁用表单,测试采集期间不能操作表单
                tabctrCoform.SelectedIndexChanged += TabctrCoform_SelectedIndexChanged;
                btnCoTest.Enabled       = false;
                btnSaveCoConfig.Enabled = false;
            }
        }