web-dev-qa-db-ja.com

IMGタグから「SRC」を解析するXPath?

今、私はこれでHTMLページから完全な要素をうまく取得しました:

//img[@class='photo-large']

たとえば、これは次のように返されます。

<img src="http://example.com/img.jpg" class='photo-large' />

しかし、私はSRCのURL( http://example.com/img.jpg )だけが必要です。何か助けは?

26
dMix

あなたはこれに自分で答えるのが非常に近いので、私はあなたのためにそれに答えるのには少し消極的です。ただし、次のXPathは必要なものを提供するはずです(もちろん、ソースがXHTMLの場合)。

//img[@class='photo-large']/@src

その他のヒントについては、 W3 Schools をご覧ください。彼らはそのような事柄に関する優れたチュートリアルと素晴らしいリファレンスも持っています。

67
Jeff Yates

Hpricotを使用すると、これは機能します:

doc.at('//img[@class="photo-large"]')['src']

複数のイメージがある場合は、次のように配列を提供します。

doc.search('//img[@class="photo-large"]').map do |e| e['src'] end

ただし、ノコギリ何倍も速い であり、 "は次のように使用できますHpricotの場合は、1滴の置き換え "
ここでは、属性を選択するためのこのXPathが機能するNokogiriのバージョンを示します。

doc.at('//img[@class="photo-large"]/@src').to_s

または多くの画像の場合:

doc.search('//img[@class="photo-large"]/@src').to_a
9
andre-r

// img/@ src

画像のリンクが必要な場合は、これで十分です。

例:

<img alt="" class="avatar width-full rounded-2" height="230" src="https://avatars3.githubusercontent.com/...;s=460" width="230">
0
nithish peddi