//데이터를 저장하는 함수 public void collectdata(HtmlAgilityPack.HtmlDocument document) { danawa = new danawa(); // Console.WriteLine("콜레드데이타 함수 속"); try { foreach (var VARIABLE in document.DocumentNode.Descendants().Where(x => x.Name == "div" && x.Attributes.Contains("class") && x.Attributes["class"].Value.Split().Contains("prod_pricelist"))) { //다나와 가격비교 리스트속 리스트 데이터 try { VARIABLE.SelectSingleNode(".//p[@class='chk_sect']").InnerText.Trim(); realurl = VARIABLE.SelectSingleNode(".//a").GetAttributeValue("href", ""); // Console.WriteLine(realurl); // Console.WriteLine("다나와 라이브러리 타는 곳"); danawa.getdanawalink(realurl); //danawadatalist.AddRange(danawa.getdatas()); } //다나와 가격비교 리스트 catch (NullReferenceException e) { try { // Console.WriteLine("사이트 목록"); //Console.WriteLine(VARIABLE.InnerHtml); realurl = VARIABLE.SelectSingleNode(".//a").GetAttributeValue("href", ""); if (realurl.Trim() == "#") { realurl = VARIABLE.Descendants() .Where(x => x.Name == "a") .ElementAt(1) .GetAttributeValue("href", ""); } realurl = geturl(realurl); // Console.WriteLine(realurl); name = VARIABLE.SelectSingleNode(".//img").GetAttributeValue("alt", "").Trim(); // Console.WriteLine(name); price = VARIABLE.SelectSingleNode(".//strong").InnerText.Trim(); // Console.WriteLine(price); delivery = VARIABLE.SelectSingleNode(".//span[@class='ship_sect']").SelectSingleNode(".//strong").InnerText.Trim(); // Console.WriteLine(delivery); try { int tmp = 0; int tmp2 = 0; itemNum = ""; if (name.Trim() == "11번가") { tmp = realurl.IndexOf(@"prdNo=") + 6; tmp2 = realurl.IndexOf(@"&tid"); itemNum = realurl.Substring(tmp, tmp2 - tmp); } else if (name == "G마켓") { tmp = realurl.IndexOf("=") + 1; tmp2 = realurl.IndexOf("&"); itemNum = realurl.Substring(tmp, tmp2 - tmp); } else if (name == "옥션") { tmp = realurl.IndexOf("=") + 1; tmp2 = realurl.IndexOf("&"); itemNum = realurl.Substring(tmp, tmp2 - tmp); } else if (name == "GS샵") { tmp = realurl.IndexOf("ecpid") + 6; tmp2 = realurl.IndexOf("&u"); itemNum = realurl.Substring(tmp, tmp2 - tmp); } else if (name == "CJMALL") { tmp = realurl.IndexOf("item_cd") + 8; itemNum = realurl.Substring(tmp, realurl.Length - tmp); } // Console.WriteLine(itemNum); } catch (ArgumentException) { // Console.WriteLine("아이템넘버 exception 5개의 사이트가 아니다"); } datas = new string[6]; datas[0] = realurl.Trim(); datas[1] = name.Trim(); datas[2] = itemNum.Trim(); datas[3] = price.Trim(); datas[4] = profit.Trim(); datas[5] = delivery.Trim(); danawadatalist.Add(datas); } catch (NullReferenceException) { // Console.WriteLine("콜렉트다나와함수에서 단종된 상품"); } } // Console.WriteLine("/////////////////////////////////////////"); } } catch (UriFormatException e) { // Console.WriteLine("danawa UriFormatException"); } catch (ArgumentException e) { // Console.WriteLine("danawa ArgumentException"); } catch (IndexOutOfRangeException e) { // Console.WriteLine("danawa IndexOutOfRangeException"); } catch (InvalidOperationException e) { // Console.WriteLine("danawa InvalidOperationException"); } catch (AggregateException e) { // Console.WriteLine("AggregateException"); } }