Example #1
0
        public static IEnumerable <int> GetHouseIds(string city, int agentId, string houseType, string verifyCode,
                                                    int userId, int?purpose = null)
        {
            string param = string.Format(paramApi, Uri.EscapeDataString(city),
                                         agentId, houseType, verifyCode);

            if (purpose != null)
            {
                param += "&purpose=" + purpose;
            }
            string          url = baseApi + param + "&wirelesscode=" + Helper_Soufun.GetWireless(param).ToLower();
            string          ret = HttpUtility.GetString(url, Helper_Soufun.GetUserHeaders(userId));
            MatchCollection ms  = Regex.Matches(ret, "<houseid>(\\d+)");

            return((from Match m in ms where m.Success select int.Parse(m.Groups[1].Value)).ToArray());
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="houseType">租售</param>
        /// <param name="purpose">建筑类型</param>
        /// <param name="cookie"></param>
        /// <param name="size"></param>
        /// <returns></returns>
        public static IEnumerable <ImportedHouse> GetHouseDetails(int houseType, int purpose, string cookie, int size)
        {
            const int siteId        = 2;
            string    type          = houseType == 1 ? "cs" : "cz";
            int       soufun_userId = int.Parse(GetMatch(cookie, "<userid>(\\d+)</userid>"));
            int       agentId       = int.Parse(GetMatch(cookie, "<agentid>(\\d+)</agentid>"));
            string    verifyCode    = GetMatch(cookie, "<verifyCode>(\\w+)</verifyCode>");
            string    city          = GetMatch(cookie, "<city>(\\w+)</city>");
            string    param         = string.Format(paramApi, Uri.EscapeDataString(city),
                                                    agentId, type, verifyCode);

            if (purpose != 0)
            {
                param += "&purpose=" + GetPrupose(purpose);
            }
            string url       = baseApi + param + "&wirelesscode=" + Helper_Soufun.GetWireless(param).ToLower();
            string ret       = HttpUtility.GetString(url, Helper_Soufun.GetUserHeaders(soufun_userId));
            var    houseList = Helper_Soufun.GetObjectFromSFUrl <HouseListRoot>(ret);

            List <ImportedHouse> houses = new List <ImportedHouse>();

            foreach (var list in houseList.houselist)
            {
                //flag=1&houseid={0}&messagename=gethouseinfo&verifycode={1}&htype={2}&purpose=0&agentid={3}&city={4}
                string           detailparam = string.Format(detailParamApi, list.houseid, verifyCode, type, agentId, Uri.EscapeDataString(city));
                string           detailUrl   = baseApi + detailparam + "&wirelesscode=" + Helper_Soufun.GetWireless(detailparam).ToLower();
                string           detailRet   = HttpUtility.GetString(detailUrl, Helper_Soufun.GetUserHeaders(soufun_userId));
                magent_interface mi          = Helper_Soufun.GetObjectFromSFUrl <magent_interface>(detailRet);
                if (mi != null)
                {
                    magent_interfaceHouse houseDetail = mi.house;
                    var community = PostDataHelper.RMappingCommunityModel(
                        houseDetail.projcode.ToString(), siteId);
                    if (community.IsNoNull())
                    {
                        //var roomArr = houseDetail.roomphotourls.Split(',');
                        //HashSet<string> rooms = new HashSet<string>();
                        //foreach (var room in roomArr) {
                        //    rooms.Add(room.Replace("120x120", "600x600"));
                        //}
                        //var fangxingArr = houseDetail.roomphotourls.Split(',');
                        //HashSet<string> fangxingArrS = new HashSet<string>();
                        //foreach (var room in fangxingArr)
                        //{
                        //    fangxingArrS.Add(room.Replace("120x120", "600x600"));
                        //}

                        string content;
                        try
                        {
                            string html = HttpUtility.GetString(mi.houseurl, Encoding.GetEncoding("gb2312"), null, true);
                            content = Regex.Match(html, "<div.*id=\"hsPro-pos\".*\n([\\w\\W]*?)<div.*id=\"hsPic-pos\">").Groups[1].Value;
                            if (string.IsNullOrEmpty(content))
                            {
                                content = houseDetail.boardcontent;
                            }
                        }
                        catch (Exception)
                        {
                            content = houseDetail.boardcontent;
                        }

                        ImportedHouse house = new ImportedHouse
                        {
                            Hall           = houseDetail.hall,
                            Room           = houseDetail.room,
                            BuildArea      = houseDetail.buildingarea,
                            UsedArea       = houseDetail.livearea,
                            PointTo        = houseDetail.forward,
                            Title          = houseDetail.boardtitle,
                            Note           = content,
                            Price          = houseDetail.price,
                            PayType        = houseDetail.payinfo,
                            PriceUnit      = houseDetail.pricetype,
                            CommunityName  = houseDetail.projname,
                            Address        = houseDetail.address,
                            Balcony        = houseDetail.balcony,
                            MaxFloor       = houseDetail.totalfloor,
                            CurFloor       = houseDetail.floor,
                            Toilet         = houseDetail.toilet,
                            UsedYear       = houseDetail.createtime,
                            HouseID        = list.houseid,
                            BuildType      = BitConverter.GetBytes(houseType)[0],
                            TradeType      = BitConverter.GetBytes(purpose)[0],
                            PicNum         = houseDetail.imagecount,
                            Kitchen        = houseDetail.kitchen,
                            CityID         = community.CityID ?? 0,
                            Distrctid      = community.Distrctid ?? 0,
                            RegionID       = community.RegionID,
                            CommunityID    = community.CommunityID,
                            roomImages     = (from room in houseDetail.roomphotourls.Split(',') where !String.IsNullOrEmpty(room) select room.Replace("120x120", "600x600")).ToArray(),
                            fangxingImages = (from room in houseDetail.housephotourls.Split(',') where !String.IsNullOrEmpty(room) select room.Replace("120x120", "600x600")).ToArray(),
                            outdoorImages  = new string[0],
                            FitmentStatus  = houseDetail.fitment
                        };
                        string buildType = houseDetail.purpose;
                        switch (buildType)
                        {
                        case "别墅":
                        {
                            house.villaInfo = new VillaInfo
                            {
                                BasicEquip = houseDetail.baseservice,
                                AdvEquip   = houseDetail.baseservice,
                            };
                        }
                        break;

                        case "写字楼":
                        {
                            house.officeInfo = new OfficeInfo
                            {
                                BasicEquip = houseDetail.baseservice,
                                Fee        = houseDetail.propertyfee
                            };
                        }
                        break;

                        case "商铺":
                        {
                            house.shopInfo = new ShopInfo {
                                BasicEquip = houseDetail.baseservice
                            };
                        }
                        break;

                        default:
                            house.houseInfo = new HouseInfo
                            {
                                BasicEquip = houseDetail.baseservice,
                                AdvEquip   = houseDetail.baseservice,
                            };
                            break;
                        }

                        houses.Add(house);
                    }
                }
            }

            return(houses);
        }