public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 400, int withAnyDays = 3) { var houses = _dataContent.HouseInfos.Where(h => h.LocationCityName == cityName && h.PubTime > DateTime.Now.Date.AddDays(-withAnyDays)); if (!string.IsNullOrEmpty(source)) { houses = houses.Where(h => h.Source == source); } var lstHouseInfo = houses.OrderByDescending(h => h.PubTime).Take(houseCount).ToList(); var lstRoomInfo = lstHouseInfo.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(CultureInfo.CurrentCulture), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 500, int withAnyDays = 7, string keyword = "") { var houses = houseDapper.SearchHouseInfo(cityName, source, houseCount, withAnyDays, keyword); var rooms = houses.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Source = house.Source, Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HouseTitle = house.HouseTitle, HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); ElasticsearchService.AddHouse(houses.ToList()); return(Json(new { IsSuccess = true, HouseInfos = rooms })); }
private IEnumerable <HouseInfo> GetRoomList(string url) { var htmlResult = HTTPHelper.GetHTMLByURL(url); var page = new HtmlParser().Parse(htmlResult); return(page.QuerySelector("ul.screening_left_ul").QuerySelectorAll("li").Select(room => { var screening_time = room.QuerySelector("p.screening_time").TextContent; var screening_price = room.QuerySelector("h5").TextContent; var locationInfo = room.QuerySelector("a"); var locationContent = locationInfo.TextContent.Split(',').FirstOrDefault(); var location = locationContent.Remove(0, locationContent.IndexOf("租") + 1); int housePrice = 0; int.TryParse(screening_price.Replace("¥", "").Replace("元/月", ""), out housePrice); var markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); return new HouseInfo { Money = screening_price, HouseURL = "http://www.huzhumaifang.com" + locationInfo.GetAttribute("href"), HouseLocation = location, HouseTime = screening_time, HousePrice = housePrice, LocationMarkBG = markBGType, }; })); }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 100, int withAnyDays = 3, bool showDoubanInvalidData = true, string keyword = "") { try { var lstHouseInfo = new DBHouseInfoDAL().SearchHouseInfo(cityName, source, houseCount, withAnyDays, showDoubanInvalidData, keyword); var lstRoomInfo = lstHouseInfo.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 100, int intervalDay = 7, string keyword = "", bool refresh = false) { try { var houseList = CrawlerDataDapper.SearchHouseInfo(cityName, source, houseCount, intervalDay, keyword, refresh); var rooms = houseList.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = rooms })); } catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }
public IActionResult GetHouseInfo(string cityName, string source = "", int houseCount = 400, int withAnyDays = 3, string keyword = "") { var houses = new DBHouseInfoDAL().SearchHouseInfo(cityName, source, houseCount, withAnyDays, keyword); var lstRoomInfo = houses.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(CultureInfo.CurrentCulture), HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = lstRoomInfo })); }
private IEnumerable <HouseInfo> GetRoomList(int pageNum) { var houses = PeopleRentingCrawler.GetHouseData(pageNum); return(houses.Select(house => { var markBGType = LocationMarkBGType.SelectColor((int)house.HousePrice / 1000); return new HouseInfo { Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToShortDateString(), HousePrice = house.HousePrice }; })); }
private IEnumerable <HouseInfo> ParseRoom(string html) { var page = new HtmlParser().Parse(html); return(page.QuerySelector("ul.listUl").QuerySelectorAll("li[logr]").Select(room => { int.TryParse(room.QuerySelector("b").TextContent, out var housePrice); var markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); var a = room.QuerySelector("a"); return new HouseInfo { HouseLocation = room.QuerySelector("p.add").QuerySelectorAll("a").Last().TextContent.Replace("租房", ""), HouseTitle = a.TextContent, Money = housePrice.ToString(), HouseURL = a.GetAttribute("href"), LocationMarkBG = markBGType, }; })); }
public IActionResult GetUserCollectionHouses(string cityName, string source = "") { try { var userID = GetUserID(); if (userID == 0) { return(Json(new { IsSuccess = false, error = "用户未登陆,无法查看房源收藏。" })); } var houseList = UserCollectionDapper.FindUserCollections(userID, cityName, source); var rooms = houseList.Select(house => { var markBGType = string.Empty; int housePrice = (int)house.HousePrice; if (housePrice > 0) { markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); } return(new HouseInfo { ID = house.Id, Source = house.Source, Money = house.DisPlayPrice, HouseURL = house.HouseOnlineURL, HouseLocation = house.HouseLocation, HouseTime = house.PubTime.ToString(), HouseTitle = house.HouseTitle, HousePrice = housePrice, LocationMarkBG = markBGType, DisplaySource = ConstConfigurationName.ConvertToDisPlayName(house.Source) }); }); return(Json(new { IsSuccess = true, HouseInfos = rooms })); } catch (Exception ex) { return(Json(new { IsSuccess = false, error = ex.ToString() })); } }
private IEnumerable <HouseInfo> GetRoomListByIndex(string cnName, int index) { var url = $"http://{cnName}.58.com/pinpaigongyu/pn/{index}"; var htmlResult = PinPaiGongYuHouseCrawler.GetHouseHTML(url); var page = new HtmlParser().Parse(htmlResult); return(page.QuerySelectorAll("li").Where(element => element.HasAttribute("logr")).Select(element => { var houseTitle = element.QuerySelector("h2").TextContent; var houseInfoList = houseTitle.Split(' '); int.TryParse(element.QuerySelector("b").TextContent, out var housePrice); var markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); return new HouseInfo { HouseTitle = houseTitle, HouseURL = $"http://{cnName}.58.com" + element.QuerySelector("a").GetAttribute("href"), Money = element.QuerySelector("b").TextContent, HouseLocation = new[] { "公寓", "青年社区" }.All(s => houseInfoList.Contains(s)) ? houseInfoList[0] : houseInfoList[1], LocationMarkBG = markBGType, }; })); }
private IEnumerable <HouseInfo> ParseRoom(string html) { if (html.Contains("验证码")) { return(new List <HouseInfo>()); } var page = new HtmlParser().Parse(html); return(page.QuerySelector("ul.listUl").QuerySelectorAll("li[logr]").Select(room => { int housePrice = 0; int.TryParse(room.QuerySelector("b").TextContent, out housePrice); var markBGType = LocationMarkBGType.SelectColor(housePrice / 1000); var a = room.QuerySelector("a"); return new HouseInfo { HouseLocation = room.QuerySelector("p.add").QuerySelectorAll("a").Last().TextContent.Replace("租房", ""), HouseTitle = a.TextContent, DisPlayPrice = housePrice.ToString(), HouseOnlineURL = a.GetAttribute("href") }; })); }