Domanda

Si supponga, voglio ottenere una pagina dal web alla mia applicazione e fare una sorta di analisi con esso. Come lo faccio? Dove devo cominciare? Dovrebbe essere alcuni plugin / gemme necessari? Qual è la sua pratica abituale nella risoluzione di questo tipo di attività?

È stato utile?

Soluzione

Si dovrebbe cercare gemme come Hpricot ( wiki ) o Nokogiri .

Hpricot esempio:

require 'open-uri'
require 'rubygems'
require 'hpricot'

html = Hpricot(open(an_url).read)
# This would search for any images inside a paragraph (XPath)
html.search('/html/body//p//img')
# This would search for any images with the class "test" (CSS selector)
html.search('img.test')

Nokogiri esempio:

require 'open-uri'
require 'rubygems'
require 'hpricot'

html = Nokogiri::HTML(open(an_url).read)
# This would search for any images inside a paragraph (XPath)
html.xpath('/html/body//p//img')
# This would search for any images with the class "test" (CSS selector)
html.css('img.test')

Nokogiri è generalmente più veloce. Entrambe le biblioteche sono dotate di un sacco di funzionalità.

Altri suggerimenti

Che cosa si vuole fare è chiamato " Raschiare "

Ryan Bates ha fatto due screencast eccellenti facilitazioni su questo argomento:

Personalmente, come Nokogiri di più. È anche possibile controllare la seguente risposta: Miglior Rails parser HTML

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top