Skip to content

Instantly share code, notes, and snippets.

@parwatcodes
Last active December 29, 2016 04:17
Show Gist options
  • Save parwatcodes/ca486b38343987d742b9c3bc98af375a to your computer and use it in GitHub Desktop.
Save parwatcodes/ca486b38343987d742b9c3bc98af375a to your computer and use it in GitHub Desktop.
casper
var casper = require('casper').create();
var fs = require('fs');
casper.on('remote.message', function (msg) {
console.log('Casper Console Listener: ' + msg);
});
casper.start('http://www.google.com/', function () {
this.fill('form', { q: 'hello world' }, true); // this keyword is referring to casper object
});
var alldata;
casper.wait(1000, function () {
var data = this.evaluate(function () {
var nodeList = document.querySelectorAll('.g h3 a');
var nodeArray = [].slice.call(nodeList);
console.log('[OK]', nodeArray);
var data = [];
for (var index = 0; index < nodeArray.length; index++) {
var currentEl = nodeArray[index];
var currentLink = currentEl.getAttribute('href');
var currentTitle = currentEl.text;
var currentItem = {
'link': currentLink,
'title': currentTitle
};
data.push(currentItem);
}
return data;
});
alldata = data;
fs.write('./OutputData/data.json', JSON.stringify(data), 'w');
});
casper.then(function () {
console.log('abcd', alldata[0].link);
// casper.thenOpen("localhost:3000", {
// type: 'POST',
// data: alldata,
// contentType: 'application/json'
// });
var server = "http://localhost:3000";
var p = { link: alldata[0].link };
var params = JSON.stringify(p);
var json = this.evaluate(function (server, params) {
try {
console.log('trying');
return JSON.parse(__utils__.sendAJAX(server, 'POST', params, true));
} catch (e) {
console.log("error sending post data");
}
}, server, params);
console.log(json);
});
casper.run(); // implicitly runs exit() function
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var connection = require('./mysql/connect');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.get('/', function (req, res) {
console.log('incoming request');
console.log(req);
res.send('s');
});
app.post('/', function (req, res) {
console.log('incoming request');
console.log(req);
res.send('s');
});
app.get('/viewdata', function (req, res) {
connection.query('SELECT * from googlesearch', function (err, rows, fields) {
if (!err) {
console.log('The Search Results', rows);
if (rows.length === 0) {
res.send("No Data has been found");
} else {
res.send(rows);
}
} else {
console.log('Error while performing query', err);
}
});
});
app.get('/savedata', function (req, res) {
fs.readFile('./OutputData/data.json', 'utf8', function (err, d) {
if (err) {
console.log(err);
return;
}
var obj = JSON.parse(d);
obj.forEach(function (element) {
connection.query('INSERT INTO googlesearch (link, title) VALUES ?', (element.link, element.title), function (err, results) {
if (err) {
res.send(err);
return;
} else {
res.send(results);
}
});
});
});
});
app.listen(3000, function () {
console.log(' node server connected ');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment