Пример #1
0
        /// <summary>
        /// 企业业绩
        /// </summary>
        /// <param name="info"></param>
        /// <param name="html"></param>
        protected void AddCorpResults(CorpInfo info, string html)
        {
            Parser   parser   = new Parser(new Lexer(html));
            NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("div"), new HasAttributeFilter("id", "yjxx")));

            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 PrjName = string.Empty, PrjCode = string.Empty, BuildUnit = string.Empty, GrantDate = string.Empty, PrjAddress = string.Empty, ChargeDept = string.Empty, PrjClassLevel = string.Empty, PrjClass = string.Empty, BuildArea = string.Empty, InviteArea = string.Empty, ProspUnit = string.Empty, DesignUnit = string.Empty, SuperUnit = string.Empty, ConstUnit = string.Empty, PrjStartDate = string.Empty, PrjEndDate = string.Empty;

                        PrjName   = tr.Columns[2].ToNodePlainString();
                        PrjCode   = tr.Columns[1].ToNodePlainString();
                        BuildUnit = tr.Columns[3].ToNodePlainString();
                        GrantDate = tr.Columns[4].ToPlainTextString().GetDateRegex();

                        CorpResults result = ToolDb.GenCorpResults(info.Id, PrjName, PrjCode, BuildUnit, GrantDate, PrjAddress, ChargeDept, PrjClassLevel, PrjClass, BuildArea, InviteArea, ProspUnit, DesignUnit, SuperUnit, ConstUnit, PrjStartDate, PrjEndDate, info.Url);

                        ToolDb.SaveEntity(result, string.Empty);
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 保存企业业绩
        /// </summary>
        /// <param name="table"></param>
        /// <param name="id"></param>
        /// <param name="url"></param>
        private void AddCorpResults(TableTag table, string id, string url)
        {
            for (int i = 1; i < table.RowCount; i++)
            {
                string PrjName = string.Empty, PrjCode = string.Empty, BuildUnit = string.Empty, GrantDate = string.Empty, PrjAddress = string.Empty, ChargeDept = string.Empty, PrjClassLevel = string.Empty, PrjClass = string.Empty, BuildArea = string.Empty, InviteArea = string.Empty, ProspUnit = string.Empty, DesignUnit = string.Empty, SuperUnit = string.Empty, ConstUnit = string.Empty, PrjStartDate = string.Empty, PrjEndDate = string.Empty;

                TableRow tr = table.Rows[i];
                PrjName      = tr.Columns[1].ToNodePlainString();
                GrantDate    = tr.Columns[2].ToPlainTextString().GetDateRegex();
                PrjStartDate = tr.Columns[5].ToPlainTextString().Replace("&nbsp;", "");
                if (string.IsNullOrEmpty(PrjName) && string.IsNullOrEmpty(GrantDate) && string.IsNullOrEmpty(PrjStartDate))
                {
                    continue;
                }
                CorpResults result = ToolDb.GenCorpResults(id, PrjName, PrjCode, BuildUnit, GrantDate, PrjAddress, ChargeDept, PrjClassLevel, PrjClass, BuildArea, InviteArea, ProspUnit, DesignUnit, SuperUnit, ConstUnit, PrjStartDate, PrjEndDate, url);

                ToolDb.SaveEntity(result, string.Empty);
            }
        }
Пример #3
0
        protected void AddCorpResults(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 = 1; i < table.RowCount; i++)
                {
                    if (table.Rows[i].ColumnCount <= 1)
                    {
                        break;
                    }
                    string PrjName = string.Empty, PrjCode = string.Empty, BuildUnit = string.Empty, GrantDate = string.Empty, PrjAddress = string.Empty, ChargeDept = string.Empty, PrjClassLevel = string.Empty, PrjClass = string.Empty, BuildArea = string.Empty, InviteArea = string.Empty, ProspUnit = string.Empty, DesignUnit = string.Empty, SuperUnit = string.Empty, ConstUnit = string.Empty, PrjStartDate = string.Empty, PrjEndDate = string.Empty;

                    TableRow tr = table.Rows[i];
                    PrjCode    = tr.Columns[1].ToNodePlainString();
                    PrjName    = tr.Columns[2].ToNodePlainString();
                    PrjAddress = tr.Columns[3].ToNodePlainString();
                    PrjClass   = tr.Columns[4].ToNodePlainString();
                    BuildUnit  = tr.Columns[5].ToNodePlainString();

                    CorpResults result = ToolDb.GenCorpResults(info.Id, PrjName, PrjCode, BuildUnit, GrantDate, PrjAddress, ChargeDept, PrjClassLevel, PrjClass, BuildArea, InviteArea, ProspUnit, DesignUnit, SuperUnit, ConstUnit, PrjStartDate, PrjEndDate, info.Url);

                    ToolDb.SaveEntity(result, string.Empty);
                }
            }
        }
Пример #4
0
        /// <summary>
        /// 企业业绩
        /// </summary>
        /// <param name="info"></param>
        /// <param name="html"></param>
        protected void AddCorpResults(CorpInfo info, string param, string corpType)
        {
            string url = "http://portal.szjs.gov.cn:8888/publicShow/queryPerformance.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)
                {
                    string PrjName = string.Empty, PrjCode = string.Empty, BuildUnit = string.Empty, GrantDate = string.Empty, PrjAddress = string.Empty, ChargeDept = string.Empty, PrjClassLevel = string.Empty, PrjClass = string.Empty, BuildArea = string.Empty, InviteArea = string.Empty, ProspUnit = string.Empty, DesignUnit = string.Empty, SuperUnit = string.Empty, ConstUnit = string.Empty, PrjStartDate = string.Empty, PrjEndDate = string.Empty;

                    PrjName   = "业绩";
                    PrjCode   = "业绩";
                    BuildUnit = "业绩";
                    GrantDate = DateTime.Today.ToString();

                    CorpResults result = ToolDb.GenCorpResults(info.Id, PrjName, PrjCode, BuildUnit, GrantDate, PrjAddress, ChargeDept, PrjClassLevel, PrjClass, BuildArea, InviteArea, ProspUnit, DesignUnit, SuperUnit, ConstUnit, PrjStartDate, PrjEndDate, info.Url);

                    ToolDb.SaveEntity(result, string.Empty);
                }
            }
        }