J'essaie d'obtenir la plus grande image d'une page que je pars avec Hpricot et je n'ai pas de chance. Comment accéder aux attributs width et height d'une balise img?Obtenir la plus grande image d'une page via Hpricot
Répondre
À moins que ce soit dans le balisage, vous ne pourrez pas accéder aux détails du fichier via hpricot. Une alternative est d'utiliser hpricot pour vous renvoyer tous les attributs src aux images, puis de les parcourir en boucle, vous pouvez analyser la réponse sous forme d'image et accéder aux propriétés de ces fichiers image réels.
Comme l'a dit hemal, la seule solution possible est que les tailles d'image soient listées dans les attributs de l'image. Mais s'ils le sont, c'est facile de les lire. Les attributs de tous les tags sont disponibles via leur clé de hachage pertinente. Par exemple:
doc = Hpricot("<img src='foo.jpg' width=200 height=200 /><img src='bar.jpg' width=100 height=100 />")
doc.search("//img").each do |image|
puts "#{image[:src]} => #{image[:width]}x#{image[:height]}"
end
Cela devrait se traduire par:
foo.jpg => 200x200
bar.jpg => 100x100
Il est possible, à condition que les attributs de largeur d'image/hauteur sont présentes dans le code HTML pour chaque image.
hp = Hpricot(page_html)
# get all image tags, sort them by height, then take largest
largest_image = hp.search("img").sort_by {|img| img["height"].to_i}[-1]
url = largest_image["src"]
Dérivé de Hpricot Challenge.
- 1. Hpricot parse image alt text
- 2. recherche rapide d'une petite image dans une image plus grande
- 3. Mise à l'échelle plus grande Image problème
- 4. requête pour obtenir 3ème plus grande quantité et 2ème plus grande quantité de la table
- 5. Comment gérer une grande image dans la page HTML
- 6. faire une plus grande image en assemblant les autres
- 7. Comment charger une image de la vignette à une plus grande taille avec Javascript
- 8. MySQL, comment obtenir la plus grande valeur d'une colonne?
- 9. Problème lors de l'affichage d'une image plus petite sur une image plus grande
- 10. Obtenez la plus grande intégration/objet dans une page, c'est-à-dire les plus grandes dimensions
- 11. L'utilisation d'un System.Drawing.Image comme partie centrée d'une image plus grande?
- 12. problème avec hpricot Parsing
- 13. JpegBitmapEncoder Image trop grande
- 14. Grande image dans .net
- 15. XML Parse avec hpricot, obtenir les attributs
- 16. NSPredicate chaînes plus grande comparaison
- 17. Utiliser Hpricot pour obtenir des éléments enfants
- 18. MySQL comptant la plus grande valeur
- 19. La plus grande taille de Windows Cursor
- 20. La plus grande colonne non nulle
- 21. Hpricot rechercher comment
- 22. hpricot problème
- 23. Obtenir l'encodage de la page/iframe via JavaScript
- 24. Ajout d'une image plus grande que la vue de l'iphone à un UIScrollView
- 25. Comment obtenir l'index de la plus grande liste dans une liste de listes utilisant Python?
- 26. Puis-je charger une grande image?
- 27. Zend ViewScript Decorator la grande image, utilisation globale.how to?
- 28. Analyser HTML avec Hpricot & Ruby - obtenir le code HTML le plus profond?
- 29. Delphi 6: Comment afficher du texte de grande qualité de grande taille via la méthode TextOut()?
- 30. Comment obtenir page_id de la page facebook via facebook connect?
oui ce serait le plus précis mais j'ai juste besoin de déterminer la plus grande image sur la page et si les attributs ne sont pas là alors je vais passer cette image. alors comment utiliser hpricot pour obtenir les attributs width/height? Merci! – thinkfuture
est-il possible d'obtenir les attributs d'image en utilisant hpricot? – thinkfuture