Ejemplo n.º 1
0
        private void buttonGenerateCmsDetail_Click(object sender, EventArgs e)
        {
            string         html = textBoxCmsResult.Text;
            CompanyCmsData item = GenerateCCD(html);

            MessageBox.Show(item.RealAddress);
        }
Ejemplo n.º 2
0
        public List <CrmWebService.CompanyCmsData> GenerateCCDList(string html, out int totalCount)
        {
            List <CrmWebService.CompanyCmsData> ccdList = new List <CompanyCmsData>();

            mshtml.HTMLDocumentClass doc = new mshtml.HTMLDocumentClass();
            doc.designMode = "on";
            doc.IHTMLDocument2_write(html);

            mshtml.IHTMLElement           divcnt    = doc.getElementById("cnt");
            mshtml.IHTMLElementCollection childrens = (mshtml.IHTMLElementCollection)divcnt.children;
            mshtml.IHTMLTable             table     = (mshtml.IHTMLTable)childrens.item(2);
            for (int i = 1; i < table.rows.length; i++)
            {
                CompanyCmsData item = new CompanyCmsData();

                mshtml.IHTMLTableRow row  = (mshtml.IHTMLTableRow)table.rows.item(i);
                mshtml.IHTMLElement  cell = (mshtml.IHTMLElement)row.cells.item(0);
                item.CmsId         = int.Parse(cell.innerText.Trim());
                cell               = (mshtml.IHTMLElement)row.cells.item(1);
                item.CompanyName   = string.IsNullOrEmpty(cell.innerText) ? "" : cell.innerText.Trim();
                cell               = (mshtml.IHTMLElement)row.cells.item(2);
                item.TTSStatusDesp = string.IsNullOrEmpty(cell.innerText) ? "" : cell.innerText.Trim();
                cell               = (mshtml.IHTMLElement)row.cells.item(3);
                item.ContactPhone  = string.IsNullOrEmpty(cell.innerText) ? "" : cell.innerText.Trim();
                cell               = (mshtml.IHTMLElement)row.cells.item(5);
                item.SalesName     = string.IsNullOrEmpty(cell.innerText) ? "" : cell.innerText.Trim();

                ccdList.Add(item);
            }
            totalCount = 0;
            mshtml.IHTMLElementCollection eles = doc.getElementsByName("totalCount");
            if (eles != null && eles.length > 0)
            {
                totalCount = int.Parse(((mshtml.IHTMLElement)eles.item(0)).getAttribute("value").ToString());
            }

            return(ccdList);
        }
Ejemplo n.º 3
0
        public ActionResult UpdateOtaCompany()
        {
            OtaCrmModel db = new OtaCrmModel();

            var companycmss = from p in db.CompanyCmsData
                              select p;
            Dictionary <string, CompanyCmsData> cmsDict = new Dictionary <string, CompanyCmsData>();

            foreach (CompanyCmsData cmsItem in companycmss)
            {
                if (!cmsDict.ContainsKey(cmsItem.CompanyName))
                {
                    cmsDict.Add(cmsItem.CompanyName, cmsItem);
                }
            }
            var q = from o in db.OtaCompany
                    select o;
            List <OtaCompany> otacompanys = q.ToList();

            int  updateCount = 0;
            bool isUpdate    = false;

            foreach (OtaCompany cItem in otacompanys)
            {
                if (cmsDict.ContainsKey(cItem.CompanyName))
                {
                    CompanyCmsData cmsItem = cmsDict[cItem.CompanyName];
                    //需要修改得地方是这些
                    if (!string.IsNullOrEmpty(cmsItem.SalesName))
                    {
                        cItem.SalesUserName = cmsItem.SalesName;
                    }
                    if (string.IsNullOrEmpty(cItem.RegisterAddress) && !string.IsNullOrEmpty(cmsItem.RegisterAddress))
                    {
                        isUpdate = true;
                        cItem.RegisterAddress = cmsItem.RegisterAddress;
                    }
                    if (string.IsNullOrEmpty(cItem.RealAddress) && !string.IsNullOrEmpty(cmsItem.RealAddress))
                    {
                        isUpdate          = true;
                        cItem.RealAddress = cmsItem.RealAddress;
                    }
                    if (string.IsNullOrEmpty(cItem.BossBackground) && !string.IsNullOrEmpty(cmsItem.BossBackground))
                    {
                        isUpdate             = true;
                        cItem.BossBackground = cmsItem.BossBackground;
                    }
                    if (string.IsNullOrEmpty(cItem.BossName) && !string.IsNullOrEmpty(cmsItem.ContactPerson))
                    {
                        isUpdate       = true;
                        cItem.BossName = cmsItem.ContactPerson;
                    }
                    if (string.IsNullOrEmpty(cItem.BusinessStatus) && !string.IsNullOrEmpty(cmsItem.TTSStatusDesp))
                    {
                        isUpdate             = true;
                        cItem.BusinessStatus = cmsItem.TTSStatusDesp;
                    }
                    if (string.IsNullOrEmpty(cItem.LegalPerson) && !string.IsNullOrEmpty(cmsItem.LegalPerson))
                    {
                        isUpdate          = true;
                        cItem.LegalPerson = cmsItem.LegalPerson;
                    }
                    if (string.IsNullOrEmpty(cItem.LegalPersonPhone) && !string.IsNullOrEmpty(cmsItem.ContactPhone))
                    {
                        isUpdate = true;
                        cItem.LegalPersonPhone = cmsItem.ContactPhone;
                    }
                    if (isUpdate)
                    {
                        updateCount++;
                    }
                }
                isUpdate = false;
            }
            db.SaveChangesAsync();

            string result = "成功更新:" + updateCount.ToString();

            return(Content(result));
        }
Ejemplo n.º 4
0
        public CompanyCmsData GenerateCCD(string html)
        {
            CompanyCmsData item = new CompanyCmsData();

            mshtml.HTMLDocumentClass doc = new mshtml.HTMLDocumentClass();
            doc.designMode = "on";
            doc.IHTMLDocument2_write(html);

            mshtml.IHTMLElement noteEle = doc.getElementById("note");   //公司简介
            if (noteEle != null)
            {
                item.CompanyDesp = string.IsNullOrEmpty(noteEle.innerText) ? "" : noteEle.innerText.Trim();
            }
            else
            {
                return(null);
            }
            mshtml.IHTMLElement ele = doc.getElementById("registeredAddress"); //注册地址
            if (ele.getAttribute("value") != null)
            {
                item.RegisterAddress = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("address"); //地址
            if (ele.getAttribute("value") != null)
            {
                item.RealAddress = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("businessLicense"); //营业执照号
            if (ele.getAttribute("value") != null)
            {
                item.CompanyIdNo = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("email"); //营业执照号
            if (ele.getAttribute("value") != null)
            {
                item.CompanyEmail = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("legalRepresentative"); //法人
            if (ele.getAttribute("value") != null)
            {
                item.LegalPerson = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("contact"); //联系人
            if (ele.getAttribute("value") != null)
            {
                item.ContactPerson = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("phone"); //电话
            if (ele.getAttribute("value") != null)
            {
                item.ContactPhone = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }
            ele = doc.getElementById("accountName"); //tts的admin账号
            if (ele.getAttribute("value") != null)
            {
                item.TTSAdminAccount = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
            }

            mshtml.IHTMLElementCollection eles = doc.getElementsByName("promotionNameDomestic");
            if (eles != null && eles.length > 0)
            {
                ele = (mshtml.IHTMLElement)eles.item(0);
                if (ele.getAttribute("value") != null)
                {
                    item.GuoneiWebName = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
                }
            }
            eles = doc.getElementsByName("promotionNameInternational");
            if (eles != null && eles.length > 0)
            {
                ele = (mshtml.IHTMLElement)eles.item(0);
                if (ele.getAttribute("value") != null)
                {
                    item.GuojiWebName = string.IsNullOrEmpty(ele.getAttribute("value").ToString()) ? "" : ele.getAttribute("value").ToString();
                }
            }
            ele = doc.getElementById("bossBackgrouds");   //公司简介
            item.BossBackground = string.IsNullOrEmpty(ele.innerText) ? "" : ele.innerText.Trim();

            return(item);
        }
Ejemplo n.º 5
0
        private void buttonGetAllPageCmsReponse_Click(object sender, EventArgs e)
        {
            //计算页数,然后从第一页开始翻页
            int totalCount = int.Parse(textBoxCmsTotalcount.Text);
            int pageCount  = totalCount / 30;

            pageCount++;
            List <CompanyCmsData> pagecmsList = new List <CompanyCmsData>();

            for (int i = 1; i <= pageCount; i++)
            {
                string html = GetCmsPageHtml(i, totalCount);
                int    temp = 0;
                List <CompanyCmsData> ccdList = GenerateCCDList(html, out temp);
                pagecmsList.AddRange(ccdList);
            }

            string compactStr = "";

            for (int i = 0; i < pagecmsList.Count; i++)
            {
                compactStr += pagecmsList[i].CmsId.Value.ToString() + "^" + pagecmsList[i].CompanyName + "^" + pagecmsList[i].TTSStatusDesp + "^" + pagecmsList[i].SalesName + "\r\n";
            }
            WriteFile(compactStr, "cms.txt", false);


            CrmWebService.ApiWebServiceSoapClient ws = new ApiWebServiceSoapClient();
            //然后每个获取详情
            List <CompanyCmsData> result = new List <CompanyCmsData>();

            //每一个公司进去抓取更加详细的信息
            for (int i = 0; i < pagecmsList.Count; i++)
            {
                //获取详细的html
                string detailhtml = GetCmsDetailHtml(pagecmsList[i].CmsId.Value);
                //把html转成对象
                CompanyCmsData dItem = GenerateCCD(detailhtml);
                if (dItem == null || string.IsNullOrEmpty(dItem.RealAddress))
                {
                    textBoxCmsResult.AppendText(pagecmsList[i].CmsId.Value.ToString() + ":失败\r\n");
                }
                else
                {
                    //重新赋值对象
                    dItem.CmsId         = pagecmsList[i].CmsId;
                    dItem.CompanyName   = pagecmsList[i].CompanyName;
                    dItem.TTSStatusDesp = pagecmsList[i].TTSStatusDesp;
                    dItem.SalesName     = pagecmsList[i].SalesName;
                    result.Add(dItem);
                    textBoxCmsResult.AppendText(pagecmsList[i].CmsId.Value.ToString() + ":成功\r\n");
                }

                if (result.Count > 100)
                {
                    string md5str = GetMd5Str(DateTime.Now.ToString("yyyyMMddHHmm00") + md5hashstr);
                    ws.InsertCompanyCms(result.ToArray(), md5str);
                    textBoxCmsResult.AppendText("100");
                    result = new List <CompanyCmsData>();
                }
            }
            if (result.Count > 0)
            {
                string md5str = GetMd5Str(DateTime.Now.ToString("yyyyMMddHHmm00") + md5hashstr);
                ws.InsertCompanyCms(result.ToArray(), md5str);
                textBoxCmsResult.AppendText("100");
                result = new List <CompanyCmsData>();
            }
        }