2010-06-02 4 views
2

J'essaye de lire dans le HTML d'un certain site Web.Comment ouvrir les URL dans les rails?

Essayer @something = open("http://www.google.com/") échoue avec l'erreur suivante:

Errno::ENOENT in testController#show 

No such file or directory - http://www.google.com/ 

Aller à http://www.google.com/, je vois évidemment le site. Qu'est-ce que je fais mal?

Merci!

Répondre

6

Vous devez d'abord require 'open-uri' d'être en mesure de open() chemins à distance.

Voir the docs pour plus d'informations.

+0

Merci. Où l'aurais-je besoin? Directement dans le contrôleur? –

+0

Oui. Vous pouvez le mettre en haut du fichier. –

2

Vous devez utiliser un utilitaire comme Nokogiri pour analyser le contenu renvoyé comme ceci:

(Du Nokogiri site front page @ http://nokogiri.org/)

require 'nokogiri' 
require 'open-uri' 

# Get a Nokogiri::HTML:Document for the page we’re interested in... 

doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) 

# Do funky things with it using Nokogiri::XML::Node methods... 

# Search for nodes by css 
doc.css('h3.r a.l').each do |link| 
    puts link.content 
end 

imprimera à l'écran:

<a href="http://some.link/">Some Link</a> 
+0

Merci. J'utilise actuellement Nokogiri, mais je voulais donner un exemple simplifié car le problème était avec 'open()', pas Nokogiri lui-même. –

Questions connexes