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学校.他们有关于这些事情的优秀教程,也是一个很好的参考.
使用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)