Ma première question ici, serait génial pour trouver une réponse. Je suis nouveau à l'utilisation de nokogiri.extraire le contenu de l'attribut de contenu dans la méta-balise d'un site Web donné une valeur spécifiée pour l'attribut de nom avec nokogiri dans ruby?
Voici mon problème. J'ai quelque chose comme ça dans la tête HTML sur un site cible (ici un post techcrunch):
<meta content="During my time at TechCrunch I've seen thousands of startups and written about hundreds of them. I sure as hell don't know all ..." name="description"/>
Je voudrais maintenant avoir un script à exécuter dans les balises meta, recherchez l'un avec l'attribut name " description "et obtenir ce qui est dans l'attribut de contenu.
J'ai essayé quelque chose comme ça
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://www.techcrunch.com/2009/10/11/the-underutilized-power-of-the-video-demo-to-explain-what-the-hell-you-actually-do/"
doc = Nokogiri::HTML(open(url))
posts = doc.xpath("//meta")
posts.each do |link|
a = link.attributes['name']
b = link.attributes['content']
end
après que je pouvais choisir le lien où le nom d'attribut est égal à la description - mais ce code renvoie nil pour a et b. J'ai joué avec posts = doc.xpath("//meta")
, posts = doc.xpath("//meta/*")
, etc. mais toujours rien.
Le problème n'est pas avec le xpath, car il semble que le document ne soit pas analysé. Vous pouvez vérifier qu'avec 'puts doc', il ne contient pas l'entrée complète. – akuhn