XPath从IMG标签解析"SRC"?

dMi*_*Mix 26 html xpath parsing screen-scraping

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

//img[@class='photo-large']
Run Code Online (Sandbox Code Playgroud)

例如它会返回:

<img src="http://example.com/img.jpg" class='photo-large' />
Run Code Online (Sandbox Code Playgroud)

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

Jef*_*tes 67

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

//img[@class='photo-large']/@src
Run Code Online (Sandbox Code Playgroud)

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


and*_*e-r 9

使用Hpricot这工作:

doc.at('//img[@class="photo-large"]')['src']
Run Code Online (Sandbox Code Playgroud)

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

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

然而,引入nokogiri快很多倍,它"可以作为替代的下降"的角度来说,Hpricot.
这里是Nokogiri的版本,其中用于选择属性的XPath工作:

doc.at('//img[@class="photo-large"]/@src').to_s
Run Code Online (Sandbox Code Playgroud)

或许多图像:

doc.search('//img[@class="photo-large"]/@src').to_a
Run Code Online (Sandbox Code Playgroud)

  • 在这个问题上磕磕绊绊,我不禁要问:是什么让你回答引用ruby相关的依赖?对我来说似乎很明显. (2认同)