2013-02-23 9 views
10

Sto provando a raschiare le pagine Web in uno script Ruby su cui sto lavorando. Lo scopo del progetto è mostrare quali ETF e fondi comuni di investimento azionario sono più compatibili con la filosofia di investimento del valore.Gemme/strumenti per scraping di pagine Web disponibili in Ruby

Alcuni esempi di pagine che vorrei raschiare sono:

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 

Cosa web scraping strumenti mi consigliate per Ruby, e perché? Tieni presente che ci sono migliaia di fondi azionari disponibili, quindi qualsiasi strumento che uso deve essere ragionevolmente veloce.

Sono nuovo di Ruby, ma ho esperienza nell'uso di lxml per la scansione di pagine Web in Python (https://github.com/jhsu802701/dopplervalueinvesting/blob/master/screen.py). Una volta scaricate le pagine su oltre 5000 scorte, lxml può racchiuderle tutte in pochi minuti. (Ricordo che cercavo BeautifulSoup ma rifiutando perché era troppo lento.)

+1

La finanza di Yahoo ha in realtà molte API disponibili, dovresti utilizzare una di queste. – pguardiario

risposta

22

Ci sono così tanti scraping gems disponibile in Ruby come Hpricot, Nokogiri e tanti. Raccomando Nokogiri di raschiare static web pages. Se stai raschiando dynamic web pages (significa che coinvolge clic del pulsante, invia modulo ecc ..). Raccomando Mechanize che utilizza internamente Nokogiri.

+0

Hpricot non ha più un manutentore. Consiglierei di usare Nokogiri :) – Jake88