/// <summary> /// 保存安全生产许可 /// </summary> /// <param name="table"></param> /// <param name="id"></param> /// <param name="url"></param> private void AddCorpSecLic(TableTag table, string id, string url) { for (int i = 1; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; string SecLicCode = string.Empty, SecLicDesc = string.Empty, ValidStartDate = string.Empty, ValidStartEnd = string.Empty, SecLicUnit = string.Empty; SecLicCode = tr.Columns[0].ToNodePlainString(); ValidStartEnd = tr.Columns[1].ToPlainTextString().GetDateRegex(); SecLicUnit = tr.Columns[2].ToNodePlainString(); ValidStartDate = tr.Columns[3].ToPlainTextString().GetDateRegex(); if (string.IsNullOrEmpty(SecLicCode) && string.IsNullOrEmpty(ValidStartEnd) && string.IsNullOrEmpty(SecLicUnit) && string.IsNullOrEmpty(ValidStartDate)) { continue; } CorpSecLic seclic = ToolDb.GenCorpSecLic(id, SecLicCode, SecLicDesc, ValidStartDate, ValidStartEnd, SecLicUnit, url); ToolDb.SaveEntity(seclic, string.Empty); } }
/// <summary> /// 企业安全许可 /// </summary> /// <param name="info"></param> /// <param name="html"></param> protected void AddCorpSecLic(CorpInfo info, string html) { Parser parser = new Parser(new Lexer(html)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "aqsc"))); 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 SecLicCode = string.Empty, SecLicDesc = string.Empty, ValidStartDate = string.Empty, ValidStartEnd = string.Empty, SecLicUnit = string.Empty; SecLicCode = tr.Columns[1].ToNodePlainString(); SecLicDesc = tr.Columns[2].ToNodePlainString(); ValidStartDate = tr.Columns[3].ToPlainTextString().GetDateRegex(); ValidStartEnd = tr.Columns[4].ToPlainTextString().GetDateRegex(); SecLicUnit = tr.Columns[5].ToNodePlainString(); if (Encoding.Default.GetByteCount(SecLicDesc) > 1000) { SecLicDesc = string.Empty; } CorpSecLic seclic = ToolDb.GenCorpSecLic(info.Id, SecLicCode, SecLicDesc, ValidStartDate, ValidStartEnd, SecLicUnit, info.Url); ToolDb.SaveEntity(seclic, string.Empty); } } } }
/// <summary> /// 企业安全许可 /// </summary> /// <param name="info"></param> /// <param name="html"></param> protected void AddCorpSecLic(CorpInfo info, string param, string corpType) { string url = "http://portal.szjs.gov.cn:8888/publicShow/querySafeProduction.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 { html = ToolWeb.GetHtmlByUrl(url, nvc, Encoding.UTF8); } catch { Thread.Sleep(8 * 60 * 1000); 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 SecLicCode = string.Empty, SecLicDesc = string.Empty, ValidStartDate = string.Empty, ValidStartEnd = string.Empty, SecLicUnit = string.Empty; SecLicCode = Convert.ToString(dic["lics_id"]); SecLicDesc = Convert.ToString(dic["lics_range"]); ValidStartDate = Convert.ToString(dic["valid_start_date"]); ValidStartEnd = Convert.ToString(dic["valid_end_date"]); SecLicUnit = Convert.ToString(dic["issue_dept"]); if (Encoding.Default.GetByteCount(SecLicDesc) > 1000) { SecLicDesc = string.Empty; } CorpSecLic seclic = ToolDb.GenCorpSecLic(info.Id, SecLicCode, SecLicDesc, ValidStartDate, ValidStartEnd, SecLicUnit, info.Url); ToolDb.SaveEntity(seclic, string.Empty); } } }