Skip to content

Instantly share code, notes, and snippets.

@eugenehp
Created July 5, 2012 05:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save eugenehp/3051618 to your computer and use it in GitHub Desktop.
Save eugenehp/3051618 to your computer and use it in GitHub Desktop.
Chrome scrapper
var express = require('express');
var cp = require('child_process');
var Chrome = require('./lib/chrome');
var Remote = require('./lib/remote');
var app = express.createServer();
app.use(express.bodyParser());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
var port = 3000;
app.listen(port);
console.log('Server is listening on port ' + port);
app.post('/api/v1',function(req,res){
var url = req.param('url'); // 'http://www.patrickhyundai.com/browse-new-hyundais.aspx'
var selector = req.param('selector');
var turn = req.param('turn');
var pages =req.param('pages');
var port = 9222;
var chrome = new Chrome(port,url);
chrome.init(function(err){
if(err==null){
var remote = new Remote(port,url,selector,turn,pages);
remote.init(function(err,data){
chrome.release();
remote.release();
if(err!=null){ //everything is fine
res.contentType('application/json');
res.write( JSON.stringify({
error: err,
timedate:new Date()
}) );
res.end('\n');
}else{ //got some error
res.contentType('application/json');
res.write( JSON.stringify({
data: data,
timedate:new Date()
}) );
res.end('\n');
}
});
}else{
res.contentType('application/json');
res.write( JSON.stringify({
error: err,
timedate:new Date()
}) );
res.end('\n');
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment