Example #1
0
 public void ExecuteHref()
 {
     while (iReply < iMax)
     {
         log4net.WriteLogFile("第层" + iReply + "任务,开始!");
         List <JHref> KeyList = PageList[iReply - 1];
         for (int i = KeyList.Count - 1; i >= 0; i--)
         {
             JHref        vTask     = KeyList[i];
             String       cUrl      = vTask.Url;
             String       cPageHtml = getPageHtml(cUrl);
             List <JHref> rs        = getHerfList(vTask);
             AddHref(iReply + 1, rs);
             try
             {
                 Thread.Sleep(100);
             }
             catch (Exception ex)
             {
             }
         }
         log4net.WriteLogFile("第层" + iReply + "任务,结束!");
         PageList[iReply - 1].Clear();
         iReply++;
         try
         {
             Thread.Sleep(100);
         }
         catch (Exception ex)
         {
         }
     }
 }
Example #2
0
        public String getPageContent(JHref vTask, String cExpr)
        {
            String cUrl  = vTask.Url;
            String cHtml = getPageHtml(cUrl);

            return(getMatchText(cHtml, cExpr));
        }
Example #3
0
 public int AddHref(int iLayer, JHref rowKey)
 {
     log4net.WriteLogFile("第" + iLayer + "层,添加链接" + rowKey.UrlName);
     AppendHref(rowKey);
     PageList[iLayer - 1].Add(rowKey);
     return(PageList[iLayer - 1].Count - 1);
 }
Example #4
0
 public int AddHref(int iLayer, List <JHref> KeyList)
 {
     for (int i = 0; i < KeyList.Count; i++)
     {
         JHref rowKey = KeyList[i];
         AddHref(iLayer, rowKey);
     }
     return(PageList[iLayer - 1].Count - 1);
 }
Example #5
0
 private void AppendHref(JHref rowKey)
 {
     // InvokeRequired需要比较调用线程ID和创建线程ID
     // 如果它们不相同则返回true
     if (this.txtResult.InvokeRequired)
     {
         AppendHref_delegate d = new AppendHref_delegate(AppendHref);
         this.Invoke(d, new object[] { rowKey });
     }
     else
     {
         txtResult.Text = rowKey.UrlName;
     }
 }
Example #6
0
        private void btnAnalyse_Click(object sender, EventArgs e)
        {
            JHref vTask = new JHref();

            vTask.Url     = this.txtUrl.Text.Replace("{PAGE_NO}", "");
            vTask.UrlName = "0";
            vTask.Layer   = 1;
            vTask.UrlID   = StringEx.getString(ActiveHref.UrlID);
            vTask.Prefix  = ActiveHref.Prefix;
            AddHref(1, vTask);
            Thread vThread = new Thread(ExecuteHref);

            vThread.Start();
        }
Example #7
0
        private void button5_Click(object sender, EventArgs e)
        {
            String cPAGE_VAL = ActiveHref.PageVal;
            int    iLayer    = StringEx.getInt(this.ActiveHref.Layer);

            for (int i = 0; i < iLayer; i++)
            {
                cPAGE_VAL = cPAGE_VAL.Replace("{PAGE_NO}", i.ToString());
                cPAGE_VAL = ExecuteScript(cPAGE_VAL);
                JHref vTask = new JHref();
                vTask.Url     = this.txtUrl.Text;
                vTask.Url     = vTask.Url.Replace("{PAGE_NO}", cPAGE_VAL);
                vTask.UrlName = "0";
                vTask.Layer   = i + 1;
                vTask.Prefix  = this.ActiveHref.Prefix;
                List <JHref> rs = getHerfList(vTask);
                for (int k = 0; k < rs.Count; k++)
                {
                    var    voKey      = rs[k];
                    String cLINK_TEXT = StringEx.getString(voKey.UrlName);
                    if (!String.IsNullOrWhiteSpace(cLINK_TEXT))
                    {
                        String cLINK_HREF = StringEx.getString(voKey.Url);
                        if (String.IsNullOrEmpty(cLINK_HREF))
                        {
                            continue;
                        }
                        if (!cLINK_HREF.StartsWith(vTask.Prefix))
                        {
                            continue;
                        }
                        if (HrefList.IndexOf(cLINK_HREF) == -1)
                        {
                            HrefList.Add(cLINK_HREF);
                            JHref rowKey = new JHref();
                            rowKey.UrlName = cLINK_TEXT;
                            rowKey.Prefix  = vTask.Prefix;
                            rowKey.Url     = cLINK_HREF;
                            rowKey.UrlID   = vTask.UrlID;
                            log4net.WriteLogFile(cLINK_HREF + ":" + cLINK_TEXT);
                            rowKey.Layer = vTask.Layer + 1;
                        }
                    }
                }
            }
        }
Example #8
0
        private void btnConfigLayer_Click(object sender, EventArgs e)
        {
            frmRule vDialog = new frmRule();

            if (vDialog.ShowDialog() == DialogResult.OK)
            {
                ActiveHref       = new JHref();
                ActiveHref.UrlID = vDialog.txtUrlID.Text;

                ActiveHref.Layer = StringEx.getInt(vDialog.txtLayer.Text);

                ActiveHref.Match = vDialog.txtMatch.Text;

                ActiveHref.Prefix = vDialog.txtPrefix.Text;

                ActiveHref.PageVal = vDialog.txtPageVal.Text;

                ActiveHref.UrlName = vDialog.txtUrlName.Text;

                ActiveHref.Url = vDialog.txtUrlName.Text;
            }
        }
Example #9
0
        public List <JHref> getHerfList(JHref vTask)
        {
            String       cUrl      = vTask.Url;
            String       cPageHtml = getPageHtml(cUrl);
            Document     doc       = NSoupClient.Parse(cPageHtml);
            var          rs        = doc.Select(ActiveHref.Match);
            List <JHref> KeyList   = new List <JHref>();

            for (int i = 0; i < rs.Count; i++)
            {
                var    voKey      = rs[i];
                String cLINK_TEXT = StringEx.getString(voKey.Text());
                if (!String.IsNullOrWhiteSpace(cLINK_TEXT))
                {
                    String cLINK_HREF = StringEx.getString(voKey.Attr("abs:href"));
                    if (String.IsNullOrEmpty(cLINK_HREF))
                    {
                        continue;
                    }
                    if (!cLINK_HREF.StartsWith(vTask.Prefix))
                    {
                        continue;
                    }
                    if (HrefList.IndexOf(cLINK_HREF) == -1)
                    {
                        HrefList.Add(cLINK_HREF);
                        JHref rowKey = new JHref();
                        rowKey.UrlName = cLINK_TEXT;
                        rowKey.Prefix  = vTask.Prefix;
                        rowKey.Url     = cLINK_HREF;
                        rowKey.UrlID   = vTask.UrlID;
                        log4net.WriteLogFile(cLINK_HREF + ":" + cLINK_TEXT);
                        rowKey.Layer = vTask.Layer + 1;
                        KeyList.Add(rowKey);
                    }
                }
            }
            return(KeyList);
        }