var request = require('request').defaults({ encoding: null }); module.exports.apartment = function($) { var result = { // images: request.get($('.aspectRatioImage').find('img')[0].attribs.src, function (error, response, body) { // if (!error && response.statusCode == 200) { // data = "data:" + response.headers["content-type"] + ";base64," + Buffer.from(body).toString('base64'); // return data; // } // }), name: $('#propertyName').text(), description: $('#descriptionSection>p').html(), address: { street: $('.propertyAddressContainer h2>span:nth-child(1)').text(), city: $('.propertyAddressContainer h2>span:nth-child(2)').text(), zip: { state: $('.propertyAddressContainer .stateZipContainer>span:nth-child(1)').text(), code: $('.propertyAddressContainer .stateZipContainer>span:nth-child(2)').text(), } }, contact: { phone: $('.contactInfo .phoneNumber span').html(), language: $('.contactInfo .languages span').html(), url: $('.contactInfo .mortar-wrapper a').attr('href'), officeHours: $('.daysHoursContainer').map(function () { return { days: $(this).find('.days').text(), hours: $(this).find('.hours').text(), }; }).get() }, features: $('#uniqueFeatures .uniqueAmenity').map(function () { return $(this).find('span').text(); }).get(), prices: $('[data-tab-content-id=all]>.pricingGridItem').add('[data-tab-content-id=all]>.jsAvailableModels').map(function () { return { name: $(this).find('.modelName').text(), available: $(this).hasClass('pricingGridItem'), rent: $(this).find('.rentLabel').text(), details: { rooms: $(this).find('.detailsTextWrapper>span:nth-child(1)').text(), baths: $(this).find('.detailsTextWrapper>span:nth-child(2)').text(), area: $(this).find('.detailsTextWrapper>span:nth-child(3)').html(), available: $(this).find('.availabilityInfo').html(), }, plan: $(this).find('.allAmenities>li').map(function () { return { title: $(this).find('.topAmenity').html(), amenities: $(this).find('.amenity').map(function () { return $(this).text(); }).get(), }; }).get(), }; }).get() }; var data = JSON.parse(JSON.stringify(result) .split(' ').join('') .split(' ').join('') .split(' ').join('') .split(' ').join('') .split('\\n').join('')); return data; }