Skip to content

Instantly share code, notes, and snippets.

@bodokaiser
Created January 7, 2016 07:58
Show Gist options
  • Save bodokaiser/3adf976281c58408fb6b to your computer and use it in GitHub Desktop.
Save bodokaiser/3adf976281c58408fb6b to your computer and use it in GitHub Desktop.
var vo = require('vo')
var nightmare = require('nightmare')
// vo ist eine Hilfe um Funktionen mit einem "*" auszuführen
// Funktionen mit einem "*" können nämlich einfacher Operationen
// machen wo man warten muss (z.B. eine Seite laden)
vo(crawl)((err,res) => {
if (err) throw err;
// hier geben wir das Ergebnis unseres Besuches aus
console.info(res)
})
function* crawl(){
// nightmare ist sozusagen unser Browser
var n = nightmare()
// Wir rufen nun Google auf
var t = yield n.goto('http://www.google.com')
// wählen die Eingabefläche und geben dort "wikipedia" ein
.type('input#lst-ib', 'wikipedia')
// dann clicken wir den "Suchen" Button
.click('input[name="btnK"]')
// dann warten wir bis die Sucheergebnisse geladen sind
// - also ein Objekt "ol#rso" da ist
.wait('ol#rso')
// jetzt wächseln wir in den Browser-Modus
.evaluate(() => {
// hier können wir nun im Browser-Code ausführen und
// zwar geben wir den Text des ersten Suchergebnis zurück
return document
.querySelector('ol#rso')
.querySelector('div.g div.s span.st')
.innerText
})
// dannach beenden wir den Browser
yield n.end()
// und geben das Textergebnis zurück
return t
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment