Example #1
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            btnStart.Enabled = false;
            #region 日志文件记录
            ClsLog clsLog    = new ClsLog();
            Thread LogThread = new Thread(new ThreadStart(clsLog.WriteLog));
            LogThread.Start();
            #endregion

            #region 抓取线程
            clsLog.AddLog(DateTime.Now.ToString(), "抓取开始");
            ClsPageUrl clsPageUrl   = new ClsPageUrl();
            Thread     SpiderThread = new Thread(new ThreadStart(clsPageUrl.SpiderData));
            SpiderThread.Start();
            #endregion

            #region 分析线程
            ClsPageContent clsPageContent = new ClsPageContent();
            Thread         AnalyseThread  = new Thread(new ThreadStart(clsPageContent.AnalyseData));
            AnalyseThread.Start();
            #endregion

            #region 数据库插入操作线程
            //ClsDB clsDB = new ClsDB();
            //Thread dbThread = new Thread(new ThreadStart(clsDB.ExecPageDBData));
            //dbThread.Start();
            #endregion

            #region 事件注册
            EventController helper = new EventController();
            /// 所有需要分析的,都完成事件
            helper.OnAllItemAnalyzeCompleted += (senders, es) =>
            {
                if (Program.clsUrlSignal == 0 && Program.clsContentSignal == 0 && Program.clsDBSignal == 0)
                {
                    SpiderThread.Abort();
                    AnalyseThread.Abort();
                    //dbThread.Abort();
                    Thread.Sleep(20000);
                    LogThread.Abort();
                    clsLog.AddLog(DateTime.Now.ToString(), "抓取结束");
                }
            };

            #endregion

            //入口方法
            spiderMain();
        }
Example #2
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (Program.userList.Count <= 0)
            {
                MessageBox.Show("请导入用户账号");
                return;
            }

            btnStart.Enabled = false;

            int spiderNum  = 0;
            int xmlnamenum = 0;



            if (useproxy.Checked)
            {
                if (Program.IPList.Count < 0)
                {
                    MessageBox.Show("ip列表为空,请到ip.xml编辑");
                    return;
                }
            }
            //配置更新
            Program.sysPara.BegSpiderIntervalTime = Convert.ToInt32(spidertime.Value * 1000);
            Program.sysPara.IsProxy = useproxy.Checked ? "true" : "false";



            btnStart.Enabled = false;
            #region 日志文件记录
            ClsLog clsLog    = new ClsLog();
            Thread LogThread = new Thread(new ThreadStart(clsLog.WriteLog));
            LogThread.Start();
            #endregion

            #region 抓取线程
            clsLog.AddLog(DateTime.Now.ToString(), "抓取开始");
            ClsPageUrl clsPageUrl   = new ClsPageUrl();
            Thread     SpiderThread = new Thread(new ThreadStart(clsPageUrl.SpiderData));
            SpiderThread.Start();
            #endregion

            #region 分析线程
            ClsPageContent clsPageContent = new ClsPageContent();
            Thread         AnalyseThread  = new Thread(new ThreadStart(clsPageContent.AnalyseData));
            AnalyseThread.Start();
            #endregion

            #region 数据库插入操作线程
            //ClsDB clsDB = new ClsDB();
            //Thread dbThread = new Thread(new ThreadStart(clsDB.ExecPageDBData));
            //dbThread.Start();
            #endregion

            #region 事件注册

            /// 所有需要分析的,都完成事件
            Program.helper.OnAllItemAnalyzeCompleted += (senders, es) =>
            {
                if (Program.clsUrlSignal == 0 && Program.clsContentSignal == 0 && Program.clsDBSignal == 0)
                {
                    SpiderThread.Abort();
                    AnalyseThread.Abort();
                    //dbThread.Abort();
                    Thread.Sleep(20000);
                    LogThread.Abort();
                    clsLog.AddLog(DateTime.Now.ToString(), "第" + Program.CurrSpiderTimes + "次抓取结束");
                    Program.CurrSpiderTimes++;
                    clsLog.AddLog(DateTime.Now.ToString(), "第" + Program.CurrSpiderTimes + "次开始");
                    //入口方法
                    spiderMain();
                }
                Application.DoEvents();
            };


            Program.helper.OntxtviewCompleted += (senders, es) =>
            {
                EventControllerArgs _tem = es as EventControllerArgs;
                txtview.AppendText(_tem.Msg + Environment.NewLine);

                Application.DoEvents();
            };

            #endregion


            //入口方法
            spiderMain();
        }