Esempio n. 1
0
        /// <summary>
        /// 企业技术力量
        /// </summary>
        /// <param name="info"></param>
        /// <param name="html"></param>
        protected void AddCorpTecStaff(CorpInfo info, string html)
        {
            Parser   parser   = new Parser(new Lexer(html));
            NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "jsll")));

            if (nodeList != null && nodeList.Count > 0)
            {
                parser = new Parser(new Lexer(nodeList.ToHtml().Replace("th", "td")));
                NodeList tableNode = parser.ExtractAllNodesThatMatch(new TagNameFilter("table"));
                if (tableNode != null && tableNode.Count > 0)
                {
                    TableTag table = tableNode[0] as TableTag;
                    for (int i = 1; i < table.RowCount; i++)
                    {
                        TableRow tr = table.Rows[i];
                        if (tr.Columns[0].ToPlainTextString().Contains("没有显示结果"))
                        {
                            break;
                        }
                        string StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;
                        StaffName = tr.Columns[1].ToNodePlainString();
                        stffType  = tr.Columns[2].ToNodePlainString();
                        CertNo    = tr.Columns[3].ToNodePlainString();

                        CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, info.Url, stffType);
                        ToolDb.SaveEntity(staff, string.Empty);
                    }
                }
            }
        }
Esempio n. 2
0
        protected void AddCorpTecStaff(CorpInfo info, string infoUrl)
        {
            string htmldtl = string.Empty;

            try
            {
                htmldtl = ToolWeb.GetHtmlByUrl(infoUrl);
            }
            catch { }
            Parser   parser   = new Parser(new Lexer(htmldtl));
            NodeList nodeList = parser.ExtractAllNodesThatMatch(new TagNameFilter("table"));

            if (nodeList != null && nodeList.Count > 0)
            {
                TableTag table = nodeList[0] as TableTag;
                for (int i = 2; i < table.RowCount; i++)
                {
                    if (table.Rows[i].ColumnCount <= 1)
                    {
                        break;
                    }
                    string StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;

                    TableRow tr = table.Rows[i];
                    StaffName = tr.Columns[1].ToNodePlainString();
                    IdCard    = tr.Columns[2].ToNodePlainString();
                    CertLevel = tr.Columns[3].ToNodePlainString();
                    CertNo    = tr.Columns[4].ToNodePlainString();
                    stffType  = tr.Columns[5].ToNodePlainString();

                    CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, info.Url, stffType);
                    ToolDb.SaveEntity(staff, string.Empty);
                }
            }
        }
Esempio n. 3
0
        protected void AddCorpStaff(CorpInfo info, string enterpriseId)
        {
            string url = "http://202.104.65.182:8081/G2/webdrive/web-person-info.do?enterpriseId=" + enterpriseId + "&enterpriseBaseId=&data&filter_params_=rowNum,personId,personBaseId,name,isPause,isDel&defined_operations_=&nocheck_operations_=&";

            string gridSearch       = "false";
            string nd               = ToolHtml.GetDateTimeLong(DateTime.Now).ToString();
            string PAGESIZE         = "1000";
            string PAGE             = "1";
            string sortField        = "";
            string sortDirection    = "asc";
            NameValueCollection nvc = ToolWeb.GetNameValueCollection(new string[] {
                "gridSearch", "nd", "PAGESIZE", "PAGE", "sortField", "sortDirection"
            }, new string[] {
                gridSearch, nd, PAGESIZE, PAGE, sortField, sortDirection
            });
            string strJson = string.Empty;

            try
            {
                strJson = ToolWeb.GetHtmlByUrl(url, nvc);
            }
            catch { return; }

            JavaScriptSerializer        serializer  = new JavaScriptSerializer();
            Dictionary <string, object> smsTypeJson = (Dictionary <string, object>)serializer.DeserializeObject(strJson);

            object[] objList = smsTypeJson["data"] as object[];
            if (objList != null)
            {
                foreach (object obj in objList)
                {
                    string StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;

                    Dictionary <string, object> dic = obj as Dictionary <string, object>;
                    StaffName = Convert.ToString(dic["name"]);

                    string dtlUrl = "http://202.104.65.182:8081/G2/webdrive/web-person-certificate.do?personId=" + dic["personId"] + "&actionFlag=view&data&filter_params_=rowNum,personBaseId,personId,certificateId,certificateType,registerLevel,certificateCode,certificatePhotoetch,gardenMajor,issuer,major,pmTitle,issueDate,registerValidEnd&defined_operations_=&nocheck_operations_=view&";//"http://202.104.65.182:8081/G2/webdrive/web-person-certificate.do?personId=" + enterpriseId + "&actionFlag=view&data&filter_params_=rowNum,personBaseId,personId,certificateId,certificateType,registerLevel,certificateCode,certificatePhotoetch,gardenMajor,issuer,major,pmTitle,issueDate,registerValidEnd&defined_operations_=&nocheck_operations_=view&";

                    string dtlJson = string.Empty;
                    try
                    {
                        dtlJson = ToolWeb.GetHtmlByUrl(dtlUrl, nvc);
                    }
                    catch { continue; }
                    Dictionary <string, object> dtlDic = (Dictionary <string, object>)serializer.DeserializeObject(dtlJson);
                    object[] dtlObjList = dtlDic["data"] as object[];
                    if (dtlObjList != null && dtlObjList.Length > 0)
                    {
                        Dictionary <string, object> dicDtl = dtlObjList[0] as Dictionary <string, object>;
                        CertNo   = Convert.ToString(dicDtl["certificateCode"]);
                        stffType = Convert.ToString(dicDtl["major"]);
                    }
                    CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, info.Url, stffType);
                    ToolDb.SaveEntity(staff, string.Empty);
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 保存企业技术管理人员情况
        /// </summary>
        /// <param name="info"></param>
        /// <param name="html"></param>
        private void AddCorpTecStaff(CorpInfo info, string html)
        {
            string viewState       = string.Empty;
            string eventValidation = string.Empty;
            string cookiestr       = string.Empty;

            viewState       = ToolWeb.GetAspNetViewState(html);
            eventValidation = ToolWeb.GetAspNetEventValidation(html);
            int pageInt             = 1;
            NameValueCollection nvc = ToolWeb.GetNameValueCollection(new string[] {
                "ctl00$MainContent$ScriptManager1",
                "__EVENTTARGET",
                "__EVENTARGUMENT",
                "__VIEWSTATE",
                "__EVENTVALIDATION",
                "__ASYNCPOST"
            }, new string[] {
                "ctl00$MainContent$UpdatePanel1|ctl00$MainContent$step3",
                "ctl00$MainContent$step3",
                "",
                viewState,
                eventValidation,
                "true"
            });
            string htmldtl = string.Empty;

            try
            {
                htmldtl = ToolWeb.GetHtmlByUrl(info.Url, nvc, Encoding.UTF8, ref cookiestr);
            }
            catch { }

            //Parser parser = new Parser(new Lexer(htmldtl));
            //NodeList pageNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "MainContent_AspNetPager1")), true), new TagNameFilter("a")));
            //if (pageNode != null && pageNode.Count > 0)
            //{
            //    try
            //    {
            //        string temp = pageNode[pageNode.Count - 1].GetATagHref().Replace("&#39;", "").Replace(")", "kdxx").Replace(",", "xxdk");
            //        pageInt = int.Parse(temp.GetRegexBegEnd("xxdk", "kdxx"));
            //    }
            //    catch { }
            //}
            //for (int i = 1; i <= pageInt; i++)
            //{
            //    if (i > 1)
            //    {
            //        NameValueCollection nvc1 = ToolWeb.GetNameValueCollection(new string[]{
            //        "ctl00$MainContent$ScriptManager1",
            //        "__EVENTTARGET",
            //        "__EVENTARGUMENT",
            //        "__VIEWSTATE",
            //        "__EVENTVALIDATION",
            //        "__ASYNCPOST"
            //        }, new string[]{
            //        "ctl00$MainContent$UpdatePanel1|ctl00$MainContent$AspNetPager1",
            //        "ctl00$MainContent$AspNetPager1",
            //        i.ToString(),
            //        viewState,
            //        eventValidation,
            //        "true"
            //        });
            //        try
            //        {
            //            htmldtl = ToolWeb.GetHtmlByUrl("http://113.108.219.40/intogd/Open/EnterpriseInfo.aspx?ID=1aNTSgxf1zvCznU8XPW9UQ==", nvc1, Encoding.UTF8, ref cookiestr);
            //        }
            //        catch { continue; }
            //    }
            Parser   parser  = new Parser(new Lexer(htmldtl));
            NodeList dtlNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "data-grid")));

            if (dtlNode != null && dtlNode.Count > 0)
            {
                TableTag table = dtlNode[0] as TableTag;
                for (int j = 1; j < table.RowCount; j++)
                {
                    TableRow tr = table.Rows[j];
                    string   StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;
                    StaffName = tr.Columns[0].ToNodePlainString();
                    stffType  = tr.Columns[1].ToNodePlainString();
                    string aHref    = "http://113.108.219.40/intogd/Open/" + tr.Columns[0].GetATagHref();
                    string staffDtl = string.Empty;
                    try
                    {
                        staffDtl = ToolWeb.GetHtmlByUrl(aHref, Encoding.UTF8);
                    }
                    catch { }
                    parser = new Parser(new Lexer(staffDtl));
                    NodeList staffNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("width", "100%")));
                    if (staffNode != null && staffNode.Count > 0)
                    {
                        string   ctx      = string.Empty;
                        TableTag dtlTable = staffNode[1] as TableTag;
                        for (int k = 0; k < dtlTable.RowCount; k++)
                        {
                            for (int d = 0; d < dtlTable.Rows[k].ColumnCount; d++)
                            {
                                TableColumn col = dtlTable.Rows[k].Columns[d];
                                if (col.GetAttribute("class") == "td-left")
                                {
                                    ctx += col.ToNodePlainString() + ":";
                                }
                                else
                                {
                                    ctx += col.ToNodePlainString() + "\r\n";
                                }
                            }
                        }
                        CertNo = ctx.GetRegex("职称证号");
                    }

                    CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, info.Url, stffType);
                    ToolDb.SaveEntity(staff, string.Empty);
                }
            }
            //  }
        }
Esempio n. 5
0
        /// <summary>
        /// 企业技术力量
        /// </summary>
        /// <param name="info"></param>
        /// <param name="html"></param>
        protected void AddCorpTecStaff(CorpInfo info, string param, string corpType)
        {
            string url = "http://portal.szjs.gov.cn:8888/publicShow/queryTechnology.html";

            string[]            postParams = new string[] { "param", "corpType", "orgCode", "page" };
            string[]            postValues = new string[] { param, corpType, info.CorpCode, "1" };
            NameValueCollection nvc        = ToolWeb.GetNameValueCollection(postParams, postValues);
            string html = string.Empty;

            try
            {
                html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8);
            }
            catch
            {
                Thread.Sleep(12 * 60 * 1000);
                try
                {
                    html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8);
                }
                catch
                {
                    Thread.Sleep(8 * 60 * 1000);
                    return;
                }
            }
            JavaScriptSerializer        java        = new JavaScriptSerializer();
            Dictionary <string, object> jsonResults = (Dictionary <string, object>)java.DeserializeObject(html);
            int pageInt = 1;

            try
            {
                pageInt = (int)jsonResults["totalPage"];
            }
            catch { }
            for (int i = 1; i <= pageInt; i++)
            {
                if (i > 1)
                {
                    postValues = new string[] { param, corpType, info.CorpCode, i.ToString() };
                    nvc        = ToolWeb.GetNameValueCollection(postParams, postValues);
                    try
                    {
                        html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8);
                    }
                    catch
                    {
                        Thread.Sleep(12 * 60 * 1000);
                        try
                        {
                            Thread.Sleep(8 * 60 * 1000);
                            html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8);
                        }
                        catch
                        {
                            continue;
                        }
                    }
                    jsonResults = (Dictionary <string, object>)java.DeserializeObject(html);
                }
                object[] dicRecords = (object[])jsonResults["records"];
                foreach (object dicRecord in dicRecords)
                {
                    Dictionary <string, object> dic = (Dictionary <string, object>)dicRecord;
                    string StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;

                    StaffName = Convert.ToString(dic["name"]);
                    stffType  = Convert.ToString(dic["typename"]);
                    CertNo    = Convert.ToString(dic["alt_cert_id"]);
                    CertLevel = Convert.ToString(dic["alt_qual_lv"]);
                    IdCard    = Convert.ToString(dic["id_number"]);
                    CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, info.Url, stffType);
                    ToolDb.SaveEntity(staff, string.Empty);
                }
            }
        }
Esempio n. 6
0
        protected override IList ExecuteCrawl(bool crawlAll)
        {
            string html            = string.Empty;
            string cookiestr       = string.Empty;
            string viewState       = string.Empty;
            int    pageInt         = 1;
            string eventValidation = string.Empty;
            string pageHtl         = string.Empty;

            try
            {
                html = ToolWeb.GetHtmlByUrl(SiteUrl, Encoding.UTF8, ref cookiestr);
            }
            catch { return(null); }
            Parser   parser      = new Parser(new Lexer(html));
            NodeList enttypeNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("select"), new HasAttributeFilter("name", "selected2")), true), new TagNameFilter("option")));

            parser.Reset();
            NodeList typeNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("select"), new HasAttributeFilter("name", "selected")), true), new TagNameFilter("option")));

            if (enttypeNode != null && enttypeNode.Count > 0 && typeNode != null && typeNode.Count > 0)
            {
                for (int t = 0; t < enttypeNode.Count; t++)
                {
                    string entTag  = (enttypeNode[t] as OptionTag).GetAttribute("value");
                    string entText = enttypeNode[t].ToNodePlainString();
                    for (int d = 0; d < typeNode.Count; d++)
                    {
                        string typeTag  = (typeNode[d] as OptionTag).GetAttribute("value");
                        string corpType = typeNode[d].ToNodePlainString();
                        if (t == 1 && d == 0)
                        {
                            typeTag = "16"; corpType = "房地产开发企业";
                        }
                        if (t == 1 && d == 1)
                        {
                            typeTag = "17"; corpType = "预拌商品混凝土企业";
                        }
                        if (t == 1 && d == 2)
                        {
                            typeTag = "19"; corpType = "建筑业施工企业";
                        }

                        try
                        {
                            NameValueCollection nvc = ToolWeb.GetNameValueCollection(
                                new string[] {
                                "pageMethod",
                                "method",
                                "selected2",
                                "selected",
                                "_state",
                                "keyword",
                                "currentPage",
                                "currentPage_temp"
                            },
                                new string[] {
                                "",
                                "searchHandBook",
                                entTag,
                                typeTag,
                                "1",
                                "", "1", "1"
                            });
                            html = ToolWeb.GetHtmlByUrl("http://www.dgjs.gov.cn/dgweb/search.do", nvc, Encoding.UTF8, ref cookiestr);
                        }
                        catch { continue; }

                        parser = new Parser(new Lexer(html));
                        NodeList pageNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("class", "mainNextPage")));
                        if (pageNode != null && pageNode.Count > 0)
                        {
                            try
                            {
                                string temp = pageNode.AsString().GetRegexBegEnd("/", "页").Replace("\r", "").Replace("\t", "").Replace("\n", "");
                                pageInt = int.Parse(temp);
                            }
                            catch { }
                        }
                        for (int i = 1; i <= pageInt; i++)
                        {
                            if (i > 1)
                            {
                                try
                                {
                                    NameValueCollection nvc = ToolWeb.GetNameValueCollection(
                                        new string[] {
                                        "pageMethod",
                                        "method",
                                        "selected2",
                                        "selected",
                                        "_state",
                                        "keyword",
                                        "currentPage",
                                        "currentPage_temp",
                                    },
                                        new string[] {
                                        "next",
                                        "searchHandBook",
                                        entTag,
                                        typeTag,
                                        "1",
                                        "", (i - 1).ToString(), i.ToString()
                                    });
                                    html = ToolWeb.GetHtmlByUrl("http://www.dgjs.gov.cn/dgweb/search.do", nvc, Encoding.UTF8, ref cookiestr);
                                }
                                catch { continue; }
                            }
                            parser = new Parser(new Lexer(html));
                            NodeList tableNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("align", "center")), true), new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "jsxmtb"))));
                            if (tableNode != null && tableNode.Count > 0)
                            {
                                TableTag table = tableNode[0] as TableTag;
                                for (int j = 2; t == 1 ? j <= table.RowCount : j < table.RowCount; j++)
                                {
                                    string CorpName = string.Empty, CorpCode = string.Empty, CorpAddress = string.Empty,
                                           RegDate = string.Empty, RegFund = string.Empty, BusinessCode = string.Empty,
                                           BusinessType = string.Empty, LinkMan = string.Empty, LinkPhone = string.Empty,
                                           Fax = string.Empty, Email = string.Empty, CorpSite = string.Empty, cUrl = string.Empty,
                                           ISOQualNum = string.Empty, ISOEnvironNum = string.Empty, CorpLevey = string.Empty;

                                    TableRow tr = null;

                                    #region 信用手册
                                    if (entText.Contains("手册"))
                                    {
                                        tr          = table.Rows[j];
                                        CorpName    = tr.Columns[1].ToNodePlainString();
                                        LinkMan     = tr.Columns[3].ToNodePlainString();
                                        CorpAddress = tr.Columns[5].ToNodePlainString();
                                        CorpLevey   = tr.Columns[2].ToNodePlainString();
                                        if (corpType.Contains("担保企业"))
                                        {
                                            cUrl = "http://www.dgjs.gov.cn/dgweb/" + tr.Columns[10].GetATagHref();
                                        }
                                        else
                                        {
                                            cUrl = "http://www.dgjs.gov.cn/dgweb/" + tr.Columns[9].GetATagHref();
                                        }
                                        string htlDtl = string.Empty;
                                        try
                                        {
                                            htlDtl = ToolWeb.GetHtmlByUrl(cUrl, Encoding.UTF8).GetJsString();
                                        }
                                        catch { continue; }

                                        parser = new Parser(new Lexer(htlDtl.Replace("th", "td").Replace("TH", "TD")));
                                        NodeList dtlNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "dgjsj")), true), new TagNameFilter("table")));
                                        if (dtlNode != null && dtlNode.Count > 1)
                                        {
                                            string   ctx      = string.Empty;
                                            TableTag dtlTable = dtlNode[0] as TableTag;
                                            for (int c = 1; c < dtlTable.RowCount; c++)
                                            {
                                                for (int v = 0; v < dtlTable.Rows[c].ColumnCount; v++)
                                                {
                                                    if (string.IsNullOrEmpty(dtlTable.Rows[c].Columns[v].ToNodePlainString()))
                                                    {
                                                        continue;
                                                    }
                                                    if ((v + 1) % 2 == 0)
                                                    {
                                                        ctx += dtlTable.Rows[c].Columns[v].ToNodePlainString() + "\r\n";
                                                    }
                                                    else
                                                    {
                                                        ctx += dtlTable.Rows[c].Columns[v].ToNodePlainString() + ":";
                                                    }
                                                }
                                            }

                                            RegDate      = ctx.GetRegex("设立时间,设立日期");
                                            LinkPhone    = ctx.GetRegex("联系电话");
                                            Fax          = ctx.GetRegex("传真");
                                            Email        = ctx.GetRegex("电子邮箱");
                                            BusinessType = ctx.GetRegex("经济性质");
                                            BusinessCode = ctx.GetRegex("营业执照注册号");
                                        }
                                        CorpInfo info = ToolDb.GenCorpInfo(CorpName, CorpCode, CorpAddress, RegDate, RegFund, BusinessCode, BusinessType, LinkMan, LinkPhone, Fax, Email, CorpSite, corpType, "广东省", "东莞市", "东莞市住房和城乡建设局", cUrl, ISOQualNum, ISOEnvironNum, string.Empty);
                                        if (!string.IsNullOrEmpty(CorpName.GetNotChina()))
                                        {
                                            string strSql = string.Format("select Id from CorpInfo where CorpName='{0}' and InfoSource='{1}' and CorpType='{2}'", info.CorpName, info.InfoSource, info.CorpType);
                                            object obj    = ToolDb.ExecuteScalar(strSql);
                                            if (obj != null && obj.ToString() != "")
                                            {
                                                StringBuilder delCorpQual     = new System.Text.StringBuilder();
                                                StringBuilder delCorpLeader   = new System.Text.StringBuilder();
                                                StringBuilder delCorpTecStaff = new System.Text.StringBuilder();
                                                delCorpQual.AppendFormat("delete from CorpQual where CorpId='{0}'", obj);
                                                delCorpLeader.AppendFormat("delete from CorpLeader where CorpId='{0}'", obj);
                                                delCorpTecStaff.AppendFormat("delete from CorpTecStaff where CorpId='{0}'", obj);
                                                ToolDb.ExecuteSql(delCorpQual.ToString());
                                                ToolDb.ExecuteSql(delCorpLeader.ToString());
                                                ToolDb.ExecuteSql(delCorpTecStaff.ToString());
                                                string corpSql = string.Format("delete from CorpInfo where Id='{0}'", obj);
                                                ToolCoreDb.ExecuteSql(corpSql);
                                            }
                                            if (ToolDb.SaveEntity(info, string.Empty))
                                            {
                                                object corpId = ToolDb.ExecuteScalar("select Id from CorpInfo where Url='" + info.Url + "' and InfoSource='东莞市住房和城乡建设局' ");

                                                ToolDb.ExecuteSql("delete from CorpQual where CorpId='" + corpId + "'");

                                                #region 企业资质
                                                TableTag quaTable = dtlNode[1] as TableTag;
                                                for (int q = 2; q < quaTable.RowCount; q++)
                                                {
                                                    TableRow quaTr = quaTable.Rows[q];
                                                    string   CorpId = string.Empty, QualName = string.Empty, QualCode = string.Empty, QualSeq = string.Empty, qualNum = string.Empty, QualType = string.Empty, QualLevel = string.Empty, ValidDate = string.Empty, LicDate = string.Empty, LicUnit = string.Empty;
                                                    CorpId    = info.Id;
                                                    QualName  = quaTr.Columns[0].ToNodePlainString();
                                                    QualLevel = quaTr.Columns[1].ToNodePlainString();
                                                    QualCode  = quaTr.Columns[5].ToNodePlainString();
                                                    LicUnit   = quaTr.Columns[6].ToNodePlainString();
                                                    QualType  = quaTr.Columns[0].ToNodePlainString();
                                                    ValidDate = quaTr.Columns[3].ToPlainTextString().GetDateRegex();
                                                    qualNum   = QualLevel.GetLevel();

                                                    CorpQual qual = ToolDb.GenCorpQual(CorpId, QualName, QualCode, QualSeq, QualType, QualLevel, ValidDate, LicDate, LicUnit, cUrl, qualNum, "广东省", "东莞市");

                                                    ToolDb.SaveEntity(qual, "");
                                                }
                                                #endregion

                                                #region 企业负责人
                                                parser = new Parser(new Lexer(htlDtl));
                                                NodeList leaderNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "head2")));
                                                if (leaderNode != null && leaderNode.Count > 0)
                                                {
                                                    ToolDb.ExecuteSql("delete from CorpLeader where CorpId='" + corpId + "'");
                                                    ATag leaderTag = leaderNode.GetATag(1);
                                                    if (!leaderTag.LinkText.Contains("负责人"))
                                                    {
                                                        leaderTag = leaderNode.GetATag(2);
                                                    }
                                                    if (!leaderTag.LinkText.Contains("负责人"))
                                                    {
                                                        leaderTag = leaderNode.GetATag(3);
                                                    }
                                                    if (!leaderTag.LinkText.Contains("负责人"))
                                                    {
                                                        leaderTag = leaderNode.GetATag(4);
                                                    }
                                                    if (leaderTag.LinkText.Contains("负责人"))
                                                    {
                                                        string leaderUrl = "http://www.dgjs.gov.cn/dgweb/" + leaderTag.Link;
                                                        string leaderDtl = string.Empty;
                                                        try
                                                        {
                                                            leaderDtl = ToolWeb.GetHtmlByUrl(leaderUrl, Encoding.UTF8).GetJsString();
                                                        }
                                                        catch { }

                                                        parser = new Parser(new Lexer(leaderDtl));
                                                        NodeList leaderDtlNode = parser.ExtractAllNodesThatMatch(new AndFilter(new HasParentFilter(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "dgjsj")), true), new TagNameFilter("table")));

                                                        if (leaderDtlNode != null && leaderDtlNode.Count > 0)
                                                        {
                                                            TableTag leaderTable = leaderDtlNode[0] as TableTag;
                                                            for (int l = 3; l < leaderTable.RowCount; l++)
                                                            {
                                                                TableRow leaderTr = leaderTable.Rows[l];

                                                                if (leaderTr.ToHtml().ToLower().Contains("none"))
                                                                {
                                                                    continue;
                                                                }
                                                                string LeaderName = string.Empty, LeaderDuty = string.Empty, LeaderType = string.Empty, htlCtx = string.Empty;
                                                                try
                                                                {
                                                                    LeaderName = leaderTr.Columns[0].ToNodePlainString();
                                                                    LeaderDuty = leaderTr.Columns[4].ToNodePlainString();

                                                                    LeaderType = leaderTr.Columns[1].ToNodePlainString();
                                                                }
                                                                catch
                                                                { }
                                                                if (!string.IsNullOrEmpty(LeaderName))
                                                                {
                                                                    CorpLeader corpLeader = ToolDb.GenCorpLeader(info.Id, LeaderName, LeaderDuty, LeaderType, leaderUrl);
                                                                    ToolDb.SaveEntity(corpLeader, string.Empty);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                #endregion

                                                #region 企业技术力量
                                                parser = new Parser(new Lexer(htlDtl));
                                                NodeList tecNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "head2")));
                                                if (tecNode != null && tecNode.Count > 0)
                                                {
                                                    ToolDb.ExecuteSql("delete from CorpTecStaff where CorpId='" + corpId + "'");
                                                    ATag leaderTag = tecNode.GetATag(1);
                                                    if (!leaderTag.LinkText.Contains("技术"))
                                                    {
                                                        leaderTag = tecNode.GetATag(2);
                                                    }
                                                    if (!leaderTag.LinkText.Contains("技术"))
                                                    {
                                                        leaderTag = tecNode.GetATag(3);
                                                    }
                                                    if (!leaderTag.LinkText.Contains("技术"))
                                                    {
                                                        leaderTag = tecNode.GetATag(4);
                                                    }
                                                    if (!leaderTag.LinkText.Contains("技术"))
                                                    {
                                                        leaderTag = tecNode.GetATag(5);
                                                    }
                                                    if (leaderTag.LinkText.Contains("技术"))
                                                    {
                                                        string leaderUrl = "http://www.dgjs.gov.cn/dgweb/" + leaderTag.Link;
                                                        string leaderDtl = string.Empty;
                                                        try
                                                        {
                                                            leaderDtl = ToolWeb.GetHtmlByUrl(leaderUrl, Encoding.UTF8).GetJsString();
                                                        }
                                                        catch { }

                                                        parser = new Parser(new Lexer(leaderDtl));
                                                        NodeList leaderDtlNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "maintable")));

                                                        if (leaderDtlNode != null && leaderDtlNode.Count > 0)
                                                        {
                                                            TableTag leaderTable = leaderDtlNode[0] as TableTag;
                                                            for (int l = 2; l < leaderTable.RowCount - 1; l++)
                                                            {
                                                                TableRow leaderTr = leaderTable.Rows[l];

                                                                string StaffName = string.Empty, IdCard = string.Empty, CertLevel = string.Empty, CertNo = string.Empty, stffType = string.Empty;
                                                                try
                                                                {
                                                                    StaffName = leaderTr.Columns[1].ToNodePlainString();
                                                                    stffType  = leaderTr.Columns[6].ToNodePlainString();
                                                                    if (stffType == "/")
                                                                    {
                                                                        stffType = null;
                                                                    }
                                                                    CertNo = leaderTr.Columns[8].ToNodePlainString();
                                                                }
                                                                catch { }
                                                                if (!string.IsNullOrEmpty(StaffName))
                                                                {
                                                                    CorpTecStaff staff = ToolDb.GenCorpTecStaff(info.Id, StaffName, IdCard, CertLevel, CertNo, leaderUrl, stffType);
                                                                    ToolDb.SaveEntity(staff, string.Empty);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                #endregion
                                            }
                                        }
                                    }
                                    #endregion

                                    #region 资质证书企业
                                    else
                                    {
                                        tr = table.Rows[j - 1];
                                        try
                                        {
                                            CorpName    = tr.Columns[0].ToNodePlainString();
                                            CorpAddress = tr.Columns[1].ToNodePlainString();
                                            LinkMan     = tr.Columns[2].ToNodePlainString();
                                            CorpInfo info1 = ToolDb.GenCorpInfo(CorpName, CorpCode, CorpAddress, RegDate, RegFund, BusinessCode, BusinessType, LinkMan, LinkPhone, Fax, Email, CorpSite, corpType, "广东省", "东莞市", "东莞市住房和城乡建设局", cUrl, ISOQualNum, ISOEnvironNum, string.Empty);
                                            if (!string.IsNullOrEmpty(CorpName.GetNotChina()))
                                            {
                                                string strSql = string.Format("select Id from CorpInfo where CorpName='{0}' and InfoSource='{1}' and CorpType='{2}'", info1.CorpName, info1.InfoSource, info1.CorpType);
                                                object obj    = ToolDb.ExecuteScalar(strSql);
                                                if (obj != null && obj.ToString() != "")
                                                {
                                                    string corpSql = string.Format("delete from CorpInfo where Id='{0}'", obj);
                                                    ToolCoreDb.ExecuteSql(corpSql);
                                                }
                                                ToolDb.SaveEntity(info1, string.Empty);
                                            }
                                        }
                                        catch (Exception ex) { }
                                    }
                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
            return(null);
        }