Filters done

This commit is contained in:
Edin Dazdarevic
2017-04-05 02:02:43 +02:00
parent d2ee02b6df
commit 15dc596f3d
10 changed files with 150 additions and 30 deletions

View File

@@ -3,7 +3,15 @@
let fetch = require('node-fetch');
let cheerio = require('cheerio');
let fs = require('fs');
import {AD_TYPE_SALE, IGNORED_USERNAMES} from '../enums';
import {
AD_TYPE_SALE,
IGNORED_USERNAMES,
CATEGORY_FLAT,
CATEGORY_HOUSE,
CATEGORY_OFFICE,
CATEGORY_LAND
} from '../enums';
export default class OlxCrawler {
@@ -26,6 +34,8 @@ export default class OlxCrawler {
}
const title = $('#naslovartikla').text();
const category = $('#artikal_glavni_div > div.artikal_lijevo > div:nth-child(3) > div > span:nth-child(3) > a > span').text();
const price = $('#pc > p:nth-child(2)').text();
const size = $('#dodatnapolja1 > div:nth-child(1) > div.df2').text();
const rooms = $('#dodatnapolja1 > div:nth-child(2) > div.df2').text();
@@ -64,13 +74,21 @@ export default class OlxCrawler {
}
const parsedPrice = parsePrice(price);
let parsedRooms;
if (rooms === 'Garsonjera') {
parsedRooms = 0;
} else {
parsedRooms = parseRooms(rooms);
}
const data = {
category: this.getCategoryId(category),
url,
title,
price: isNaN(parsedPrice) || price,
price: isNaN(parsedPrice) ? price : parsedPrice,
size: parseFloat(size),
rooms: parseRooms(rooms),
rooms: parsedRooms,
floor: parseInt(floor),
address,
location,
@@ -127,6 +145,18 @@ export default class OlxCrawler {
}
}
getCategoryId (category) {
if (category === 'Stanovi') {
return CATEGORY_FLAT;
} else if (category === 'Zemljišta') {
return CATEGORY_LAND;
} else if (category === 'Kuće') {
return CATEGORY_HOUSE;
} else if (category === 'Poslovni prostori') {
return CATEGORY_OFFICE;
}
}
async sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}