private void buttonGenerateCmsDetail_Click(object sender, EventArgs e) { string html = textBoxCmsResult.Text; CompanyCmsData item = GenerateCCD(html); MessageBox.Show(item.RealAddress); }
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); }
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)); }
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); }
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>(); } }