2014-10-06 41 views
1

我正在使用YQL从网站上刮取一些图像。如何选择XPath中的前n个元素

问题是我只想从该网站的前5个图像。

我有以下查询:

select * from html where url="http://myanimelist.net/anime/9253/Steins;Gate" and xpath='//img[position()<=5]' 

但是,它返回所有的图像元素,而不是第一个5

YQL控制台:open YQL console with above XPath

有什么毛病我的XPath查询?

PS:我不能使用LIMIT 5,因为我可能还需要刮一些其他标签。

回答

1

这个XPath表达式将选择第5个img元素:

//img[count(preceding::img) < 5] 

这里是整个YQL查询:

select * from html where url="http://myanimelist.net/anime/9253/Steins;Gate" and xpath='//img[count(preceding::img) < 5]' 

你可以看它的YQL Console工作。

+1

哇,这是一个整洁的小动作与前面。我知道我不得不使用''count()'',但我正在尝试使用''self''而不是'''''''。 – 2014-10-07 08:32:09