Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

48 lines (37 sloc) 1.306 kb
###
Takes provided terms passed as arguments and query google for the number of
estimated results each have.
Usage:
$ casperjs googlematch.coffee nicolas chuck borris
nicolas: 69600000
chuck: 49500000
borris: 2370000
winner is "nicolas" with 69600000 results
###
casper = require("casper").create verbose: true
casper.fetchScore = ->
@evaluate ->
result = document.querySelector('#resultStats').innerText
parseInt /Environ ([0-9\s]{1,}).*/.exec(result)[1].replace(/\s/g, '')
terms = casper.cli.args # terms are passed through command-line arguments
if terms.length < 2
casper
.echo("Usage: $ casperjs googlematch.js term1 term2 [term3]...")
.exit(1)
scores = []
casper.echo "Let the match begin between \"#{terms.join '", "'}\"!"
casper.start "http://google.fr/"
casper.each terms, (self, term) ->
@then -> @fill 'form[action="/search"]', { q: term }, true
@then ->
score = @fetchScore()
scores.push term: term, score: score
@echo "#{term}: #{score}"
casper.run ->
if scores.length is 0
@echo "No result found"
else
scores.sort (a, b) -> b.score - a.score
winner = scores[0]
@echo "Winner is \"" + winner.term + "\" with " + winner.score + " results"
@exit()
Jump to Line
Something went wrong with that request. Please try again.