Created
January 7, 2016 07:58
-
-
Save bodokaiser/3adf976281c58408fb6b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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