/// <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); } } } }
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); } } }
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); } } }
/// <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("'", "").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); } } // } }
/// <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); } } }
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); }