2014-10-30 11 views
5

Ich würde gerne wissen, ob es etwas wie Scrapy für nodejs gibt? Wenn nicht, was denkst du über das einfache Herunterladen und Parsen der Seite mit cheerio? Gibt es einen besseren Weg?Scrapy wie Werkzeug für Nodejs?

Antwort

1

Ich habe keine so starke Lösung zum Crawlen/Indizieren ganzer Websites wie Scrapy in Python gesehen, also benutze ich Python Scrapy zum Crawlen von Websites.

Aber zum Schaben von Daten von Seiten gibt es casperjs in nodejs. Es ist eine sehr coole Lösung. Es funktioniert auch für Ajax-Websites, z.B. angular-js Seiten. Python Scrapy kann Ajax-Seiten nicht analysieren. So für das Kratzen von Daten für eine oder wenige Seiten bevorzuge ich CasperJs.

Cheerio ist wirklich schneller als Casperjs, aber es funktioniert nicht mit Ajax-Seiten und es hat keine so gute Struktur eines Codes wie Casperjs. So bevorzuge ich Casperjs, auch wenn Sie Cheerio-Paket verwenden können.

Coffee-Skript Beispiel:

casper.start 'https://reports.something.com/login', -> 
    this.fill 'form', 
    username: params.username 
    password: params.password 
    , true 

casper.thenOpen queryUrl, {method:'POST', data:queryData}, -> 
    this.click 'input' 

casper.then -> 
    get = (number) => 
    value = this.fetchText("tr[bgcolor= '#AFC5E4'] > td:nth-of-type(#{number})").trim() 
0

Nur für den Fall, dass Sie noch eine Antwort benötigen, https://www.npmjs.org/package/scrapy Ich habe es nie getestet, aber ich denke, es kann helfen. Happy Scrapping.

+0

Dieses Modul nicht konfiguriert werden kann. Es gibt nur Geschäftsname und Telefon zurück. Ich fand eine mögliche Lösung nicht so performant wie Scrappy. aber mit Cheerio wäre es möglich, die Seite zu manipulieren. genau wie mit Jquery. – user2422940