Beispiel #1
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="htmNode"></param>
            /// <returns></returns>
            public Models.Advertisement EscrapeAdInfo(HtmlAgilityPack.HtmlNode htmNode)
            {
                Models.Advertisement _adInfo = null;
                if (htmNode != null)
                {
                    try
                    {
                        HtmlAgilityPack.HtmlNode __n = null;

                        string _businessName = "[ERROR]";
                        __n           = HtmlUtil.GetNode(htmNode, "meta", "itemprop", "name");
                        _businessName = __n.Attributes["content"].Value;
                        _businessName = Models.Advertisement.Resolve(_businessName);

                        string _description = "[NA]";
                        __n = HtmlUtil.GetNode(htmNode, "div", "class", "enhancedTextDesc paragraph");
                        if (__n != null)
                        {
                            _description = __n.InnerText;
                        }

                        string _phone = "[NA]";
                        try
                        {
                            /* <div class="preferredContact paragraph">
                             *  <span class="prefix">ph:</span>
                             *  <span preferredcontact="1">(02) 8222 3333</span>
                             * </div>
                             */
                            _phone = HtmlUtil.GetNode(htmNode, "div", "class", "preferredContact paragraph").Descendants("span").ToArray()[1].InnerText;
                        }
                        catch { }


                        string _fax = "[NA]"; //HtmlUtil.GetInnerText(_n, "div", "class", "phoneNumber");

                        /*
                         * <span class="address">Level 11/ 75 Elizabeth St, Sydney NSW 2000</span>
                         */
                        string _fullAddress = HtmlUtil.GetInnerText(htmNode, "span", "class", "address");

                        string _streetBlk  = string.Empty;
                        string _locality   = string.Empty;
                        string _region     = string.Empty;
                        string _postalCode = string.Empty;
                        Parsers.SplitAddresses(_fullAddress, ref _streetBlk, ref _locality, ref _region, ref _postalCode);

                        string _website = "[NA]";
                        __n = HtmlUtil.GetNode(htmNode, "a", "name", "listing_website");
                        if (__n != null)
                        {
                            _website = Models.Advertisement.Resolve(__n.InnerText);
                        }

                        string _latitude  = "[NA]";
                        string _longitude = "[NA]";

                        /*<li flagnumber="1"
                         *  class="gold mappableListing listingContainer omnitureListing"
                         *  longitude="151.210118"
                         *  latitude="-33.867857"
                         *  product=";473590701;;;;evar26=Turner_Freeman_Lawye|evar23=O|evar46=YOLDSOL-DC" listingposition="1">*/


                        _latitude  = htmNode.Attributes["latitude"].Value;
                        _longitude = htmNode.Attributes["longitude"].Value;

                        /*
                         * <div class="yelp-rating review-rating" review="5"></div>
                         */
                        string _rating = "[NA]";
                        __n = HtmlUtil.GetNode(htmNode, "div", "class", "yelp-rating review-rating");
                        if (__n != null)
                        {
                            _rating = __n.Attributes["review"].Value;
                        }

                        /*  <a href="/nsw/sydney/edwards-barrie-13025623-listing.html?context=businessTypeSearch&amp;referredBy=YOL" name="listing_name" class="omnitureListingNameLink" id="listing-name-link-25">
                         *      <span id="listing-name-25">Edwards Barrie</span>
                         *  </a>
                         */
                        string _adLink = "[ERROR]";
                        __n = HtmlUtil.GetNode(htmNode, "a", "class", "omnitureListingNameLink");
                        if (__n != null)
                        {
                            _adLink = __n.Attributes["href"].Value;
                        }

                        //--------------------------------------------------------
                        _adInfo = new Models.Advertisement()
                        {
                            BusinessName   = _businessName,
                            Description    = _description,
                            Phone          = _phone,
                            Fax            = _fax,
                            FullAddress    = _fullAddress,
                            StreetBlk      = _streetBlk,
                            Locality       = _locality,
                            Region         = _region,
                            PostalCode     = _postalCode,
                            Website        = _website,
                            Latitude       = _latitude,
                            Longtitude     = _longitude,
                            Rating         = _rating,
                            AdvertiserLink = string.Format("{0}{1}", this.directoryProviderSetting.BaseUrl, _adLink),
                        };
                    }
                    catch (Exception ex)
                    {
                        if (this.frameworkExceptionInvoke != null)
                        {
                            Exception _ex = new Exception(string.Format("Exception in {0}.{1}(?)", this.directoryProviderSetting.ServicedCountry.ToString(), "EscrapeAdInfo"), ex);
                            this.frameworkExceptionInvoke(new Handlers.EventHandlers.FrameworkExceptionEventArgs(_ex));
                        }
                    }
                }
                return(_adInfo);
            }
            /// <summary>
            ///
            /// </summary>
            /// <param name="htmNode"></param>
            /// <returns></returns>
            public Models.Advertisement EscrapeAdInfo(HtmlAgilityPack.HtmlNode htmNode)
            {
                Models.Advertisement _adInfo = null;
                if (htmNode != null)
                {
                    try
                    {
                        string _businessName = HtmlUtil.GetInnerText(htmNode, "span", "class", "listingTitle");
                        _businessName = Models.Advertisement.Resolve(_businessName);

                        string _phone       = HtmlUtil.GetInnerText(htmNode, "div", "class", "phoneNumber");
                        string _fax         = "[NA]"; //HtmlUtil.GetInnerText(_n, "div", "class", "phoneNumber");
                        string _fullAddress = HtmlUtil.GetInnerText(htmNode, "div", "class", "address");

                        string _streetBlk  = string.Empty;
                        string _locality   = string.Empty;
                        string _region     = string.Empty;
                        string _postalCode = string.Empty;
                        Parsers.SplitAddresses(_fullAddress, ref _streetBlk, ref _locality, ref _region, ref _postalCode);

                        HtmlAgilityPack.HtmlNode __n = null;

                        string _website = "[NA]";
                        __n = HtmlUtil.GetNode(htmNode, "ul", "class", "ypgListingLinks");
                        if (__n != null)
                        {
                            try
                            {
                                __n      = HtmlUtil.GetNode(htmNode, "li", "class", "noPrint");
                                __n      = __n.Descendants("a").ToArray()[0];
                                _website = __n.Attributes["href"].Value.Replace("/gourl/", string.Empty);
                            }
                            catch { }
                        }

                        string _adLink = "[NA]";
                        __n = HtmlUtil.GetNode(htmNode, "h3", "class", "listingTitleLine");
                        if (__n != null)
                        {
                            __n     = __n.Descendants("a").ToArray()[0];
                            _adLink = __n.Attributes["href"].Value;
                        }

                        //--------------------------------------------------------
                        _adInfo = new Models.Advertisement()
                        {
                            BusinessName   = _businessName,
                            Phone          = _phone,
                            Fax            = _fax,
                            FullAddress    = _fullAddress,
                            StreetBlk      = _streetBlk,
                            Locality       = _locality,
                            Region         = _region,
                            PostalCode     = _postalCode,
                            Website        = _website,
                            AdvertiserLink = string.Format("{0}{1}", this.directoryProviderSetting.BaseUrl, _adLink),
                        };
                    }
                    catch (Exception ex)
                    {
                        if (this.frameworkExceptionInvoke != null)
                        {
                            Exception _ex = new Exception(string.Format("Exception in {0}.{1}(?)", this.directoryProviderSetting.ServicedCountry.ToString(), "EscrapeAdInfo"), ex);
                            this.frameworkExceptionInvoke(new Handlers.EventHandlers.FrameworkExceptionEventArgs(_ex));
                        }
                    }
                }
                return(_adInfo);
            }