En ce moment, j'ai réussi à saisir l'élément complet d'une page HTML avec ceci:
//img[@class='photo-large']
par exemple, cela retournerait ceci:
<img src="http://example.com/img.jpg" class='photo-large' />
Mais je n'ai besoin que de l'URL SRC ( http://example.com/img.jpg ). De l'aide?
Vous êtes si près de répondre vous-même à cette question que je suis quelque peu réticent à y répondre pour vous. Cependant, le XPath suivant devrait fournir ce que vous voulez (à condition que la source soit XHTML, bien sûr).
//img[@class='photo-large']/@src
Pour plus de conseils, consultez Écoles W . Ils ont d'excellents tutoriels sur de telles choses et une excellente référence aussi.
En utilisant Hpricot cela fonctionne:
doc.at('//img[@class="photo-large"]')['src']
Si vous avez plusieurs images, ce qui suit donne un tableau:
doc.search('//img[@class="photo-large"]').map do |e| e['src'] end
Cependant, Nokogiri est plusieurs fois plus rapide et il “peut être utilisé comme un drop in remplacement ” pour Hpricot.
Voici la version pour Nokogiri, dans laquelle fonctionne ce XPath pour la sélection des attributs:
doc.at('//img[@class="photo-large"]/@src').to_s
ou pour de nombreuses images:
doc.search('//img[@class="photo-large"]/@src').to_a
// img/@ src
vous pouvez simplement aller avec cela si vous voulez un lien de l'image.
exemple:
<img alt="" class="avatar width-full rounded-2" height="230" src="https://avatars3.githubusercontent.com/...;s=460" width="230">