-
Notifications
You must be signed in to change notification settings - Fork 1
/
google.js
32 lines (27 loc) · 948 Bytes
/
google.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var links = [];
var casper = require('casper').create();
function getLinks() {
var links = document.querySelectorAll('h3.r a');
return Array.prototype.map.call(links, function(e) {
return e.getAttribute('href');
});
}
casper.start('http://google.com', function() {
// search for 'javascript' from google form
this.fill('form[action="/search"]', { q: 'javascript' }, true);
});
casper.then(function() {
// aggregate results for the 'javascript' search
links = this.evaluate(getLinks);
// now search for 'python' by filling the form again
this.fill('form[action="/search"]', { q: 'python' }, true);
});
casper.then(function() {
// aggregate results for the 'python' search
links = links.concat(this.evaluate(getLinks));
});
casper.run(function() {
// echo results in some pretty fashion
this.echo(links.length + ' links found:');
this.echo(' - ' + links.join('\n - ')).exit();
});