예제 #1
0
        public static int GetPlaceID(string RestaurantTitle, string keyword = null)
        {
            HtmlDocument dom = ParseSupport.Crawling("https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=" + HttpUtility.HtmlEncode(keyword + " " + RestaurantTitle));
            HtmlNode     ds  = null;

            ds = dom.DocumentNode.SelectSingleNode("//a[@class='api_more_theme']");
            if (ds != null)
            {
                return((int)ParseSupport.UrlQueryParser(ds)["id"]);
            }

            // 만약 상단에 플레이스 정보가 없다면, 지도 카테고리도 확인한다. + 플레이스 정보

            ds = dom.DocumentNode.SelectSingleNode("//a[@title='" + RestaurantTitle + "']");
            if (ds != null)
            {
                string code = (string)ParseSupport.UrlQueryParser(ds)["code"];
                if (code != null)
                {
                    return(Int32.Parse(code));
                }

                string id = (string)ParseSupport.UrlQueryParser(ds)["id"];
                if (id != null)
                {
                    return(Int32.Parse(id));
                }
            }

            return(-1);
        }
예제 #2
0
        public static int GetPlaceID(string RestaurantTitle, string roadAddress, string keyword = null)
        {
            HtmlDocument       dom = ParseSupport.Crawling("https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=" + HttpUtility.HtmlEncode(roadAddress));
            HtmlNodeCollection ds  = dom.DocumentNode.SelectNodes("//dd[@class='vicinity']/a");

            if (ds != null)
            {
                foreach (HtmlNode node in ds)
                {
                    if (node.InnerText == RestaurantTitle)
                    {
                        return((int)ParseSupport.UrlQueryParser(node)["code"]);
                    }
                }
            }
            // 도로명으로 검색이 불가능 한 경우 이름으로 재검색
            return(GetPlaceID(RestaurantTitle, keyword));
        }