XPath从IMG标签解析“SRC”?

时间:2009-07-24 19:22:41

标签: html parsing xpath screen-scraping

现在我成功地从HTML页面抓取了完整的元素:

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

例如它会返回:

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

但我只需要SRC网址(http://example.com/img.jpg)。有什么帮助吗?

3 个答案:

答案 0 :(得分:63)

你是如此接近自己回答这个问题,我有点不愿意为你回答。但是,以下XPath应该提供您想要的(当然,如果源代码是XHTML)。

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

如需进一步提示,请查看W3 Schools。他们有关于这些事情的优秀教程,也是一个很好的参考。

答案 1 :(得分:9)

使用 Hpricot ,这有效:

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

如果你有多个图像,下面给出一个数组:

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

然而, Nokogiri many times faster,而“can be used as a drop in replacement”为Hpricot。
这里是Nokogiri的版本,其中选择属性的XPath工作:

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

或许多图片:

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

答案 2 :(得分:0)

// IMG / @ SRC

如果你想要一个图像链接,你可以使用它。

示例:

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