Filters done
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user