Advertisement
Guest User

Untitled

a guest
Sep 15th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var fs = require('fs');
  3. var request = require('request');
  4. var cheerio = require('cheerio');
  5. var async = require('async');
  6. var csvjson = require('csvjson');
  7. var diacritics = require('diacritic');
  8. var curl = require('node-curl');
  9. var stringify = require('querystring').stringify;
  10.  
  11. var url = "http://www.meilleursagents.com";
  12.  
  13. var app = express();
  14.  
  15. //Cookies are disabled by default
  16. //request = request.defaults({jar: true});
  17.  
  18. var form = {
  19.     url: '',
  20.     action:'signin',
  21.     user_username: "bob@ledur.fr",
  22.     user_password: "ledur"
  23. };
  24.  
  25. var conf = {
  26.   'url': url,
  27.   'jar': request.jar()
  28. };
  29.  
  30. var options = {
  31.   'uri': url + '/signin?show=signin',
  32.   'jar': conf.jar,
  33.   'form': form
  34. };
  35.  
  36. // 3 - callback pour confirmer que je suis toujours login
  37. function verifLogin(err, res, body) {
  38.     if (err) return console.log("ERROR:", err);
  39.     var $ = cheerio.load(body);
  40.     console.log($('a[href="/my/"]').text());
  41.     start();
  42. }
  43.  
  44. var base;
  45.  
  46. //start();
  47. connect();
  48.  
  49. function connect() {
  50.     request.post(options, function (err, res, body) {
  51.         if (err) {
  52.             console
  53.             .log(err);
  54.         } else {
  55.             request.get(conf, verifLogin);
  56.         }
  57.     });
  58. }
  59.  
  60. function start() {
  61.     csvjson.toSchemaObject('./fake_ads_samples.csv').save('./fake_ads_samples.json');
  62.     base = JSON.parse(fs.readFileSync('./fake_ads_samples.json', 'utf8'));
  63.     getSqMeterPrices(base);
  64.     // console.log(base);
  65. }
  66.  
  67. function getSqMeterPrices(base) {
  68.     async.eachSeries(base, function (item, callback) {
  69.         if (item.chk == "true") {
  70.             return callback();
  71.         }
  72.         var u = url + "/prix-immobilier/" + diacritics.clean(item.city.name.toLowerCase().replace(/\s/g, '-')) + '-' + item.city.postalCode + '/';
  73.         console.log(u);
  74.         request.get({url: u, jar: conf.jar}, function (err, res, body) {
  75.             var $ = cheerio.load(body);
  76.             console.log($('a[href="/my/"]').text());
  77.             console.log($('title').text());
  78.  
  79.             if (err || res.statusCode != 200) {
  80.                 return console.log(err, res.statusCode);
  81.             } else {
  82.                 // console.log(res.headers);
  83.                 // console.log($('title').text());
  84.                 // console.log(body);
  85.                 $('li.price_house').each(function (i, element) {
  86.                     var low = $(this).next();
  87.                     var avg = $(this).next().next();
  88.                     var high = $(this).next().next().next();
  89.                     console.log(item.city.name + ',' + low.text().clear() + ',' + avg.text().clear() + ',' + high.text().clear());
  90.                 });
  91.             }
  92.             callback();
  93.         });
  94.     }, function (err) {
  95.         if (err) {
  96.             console.log(err);
  97.         } else {
  98.             console.log('Grab Done!');
  99.         }
  100.     });
  101. }
  102.  
  103. String.prototype.clear = function () {
  104.     return this.replace(/[\sā‚¬]/g, '');
  105. };
  106.  
  107. module.exports = app;
  108.  
  109. var server = app.listen(3333, function() {
  110.   console.log('Express server listening on port ' + server.address().port);
  111. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement