Je veux obtenir le contenu de cette page *. Tout ce que j'ai recherché donne la solution d'analyse des éléments CSS; Mais, cette page n'en a aucun.
Voici le seul code que j'ai trouvé qui ressemblait à cela devrait fonctionner: p> erreur: p> tracker.rb:1:in 'initialize': Invalid argument - http://hiscore.runescape.com/index_lite.ws?player=zezima (Errno::EINVAL)
from tracker.rb:1:in 'open'
from tracker.rb:1
3 Réponses :
Le moyen approprié d'aller chercher le contenu d'un site Web est via le module Net :: HTTP de Ruby:
require 'uri' require 'net/http' url = "http://hiscore.runescape.com/index_lite.ws?player=zezima" r = Net::HTTP.get_response(URI.parse(url).host, URI.parse(url).path)
Vous voulez vraiment utiliser OUVERT () fourni par la classe de noyau que require 'open-uri'
file = open('http://hiscore.runescape.com/index_lite.ws?player=zezima')
contents = file.read
puts contents
Je vois - je ne savais pas ça. Néanmoins, en fonction de ce qu'il veut faire avec ce contenu, il pourrait être mieux désactivé avec net / http.
Oo, c'est encore mieux. Merci.
@HALFDAN - Totalement d'accord que Net / HTTP est meilleur en général. Je ne comptrai pas sur cette méthode pour quelque chose de non-trivial / de production. NET / HTTP a ses lacunes et je préfère généralement les liaisons de curl (Liburb). Cet article a de bonnes informations sur les performances du client HTTP - bit.ly/lvrir curb est génial parce que vous avez beaucoup plus fin. Contrôle grainé sur les délais d'attente, qui est super critique dans l'utilisation de la production de volume élevé.
Avons-nous besoin d'utiliser cette syntaxe "Source = Ouvrir (' Google.com ', &: lisez)" si Nous voulons que le fichier soit fermé? Quelqu'un ailleurs sur ce que ledit fichier.read seul ne ferme pas le fichier? Veuillez peser sur notre question si cela ne vous dérange pas:
Vous n'êtes pas obligé d'utiliser cette syntaxe mais vous pouvez, sauvera la 2ème ligne de devoir faire la lecture. C'est vraiment la même chose que le 2e argument ne fait que passer un bloc à l'appel Open () et le bloc exécute après la réussite ouverte, exécutez ainsi le bloc (le lisez code>) et renvoie ce résultat. 6 ou 1/2 une douzaine
@Codycaughlan et comment alliez-vous sur la mise à jour des chemins d'actifs dans HTML tiré de sorte que HTML tiré des affichages HTML car si je navigue directement sur cette URL dans le navigateur?
Veuillez utiliser Open-UriR, son support URI et des fichiers locaux
require 'open-uri'
contents = open('http://www.google.com') {|f| f.read }