2013-02-23 11 views
10

Ich versuche, Webseiten in einem Ruby-Skript zu kratzen, an dem ich arbeite. Der Zweck des Projekts ist es, aufzuzeigen, welche ETFs und Aktien-Investmentfonds am besten mit der Value-Investing-Philosophie vereinbar sind.Webseite scraping Edelsteine ​​/ Werkzeuge in Ruby verfügbar

Einige Beispiele von Seiten würde ich kratzen gerne sind:

http://finance.yahoo.com/q/pr?s=SPY+Profile 
http://finance.yahoo.com/q/hl?s=SPY+Holdings 
http://www.marketwatch.com/tools/mutual-fund/list/V 

Welche Web-Scraping-Tools haben Sie für Ruby empfehlen und warum? Denken Sie daran, dass es Tausende von Aktienfonds gibt, also muss jedes Werkzeug, das ich verwende, ziemlich schnell sein.

Ich bin neu in Ruby, aber ich habe Erfahrung mit lxml zum Erstellen von Webseiten in Python (https://github.com/jhsu802701/dopplervalueinvesting/blob/master/screen.py). Sobald die Seiten von über 5000 Aktien heruntergeladen sind, kann Lxml sie alle in wenigen Minuten abkratzen. (Ich erinnere mich, versuche BeautifulSoup aber es ablehnt, weil es zu langsam war.)

+1

Yahoo Finanzen hat tatsächlich viele APIs zur Verfügung, Sie sollten eine davon verwenden. – pguardiario

Antwort

22

Es sind so viele scraping gems in Ruby wie Hpricot, Nokogiri und so viele. Ich empfehle Nokogiri zu kratzen static web pages. Wenn Sie kratzen dynamic web pages (Mittel, die Knopfklick beinhaltet, Formular usw.). Ich empfehle Mechanize die intern Nokogiri verwendet.

+0

Hpricot hat keinen Maintainer mehr. Ich würde Nokogiri empfehlen :) – Jake88