2016-07-11 40 views
2

我正在使用scrapy编写一个可以找到内部图像链接的抓取工具,并抓取链接的href。我正在抓取的页面中填充了图像缩略图,当您单击缩略图时,它会链接到图像的全尺寸版本。我想抓取全尺寸的图片。使用xpath选择内部链接的图像链接的href

的HTML看起来有点像这样:

<a href="example.com/full_size_image.jpg"> 
    <img src="example.com/image_thumbnail.jpg"> 
</a> 

我要抢"example.com/full_size_image.jpg"

我现在这样做的方法是

img_urls = scrapy.Selector(response).xpath('//a/img/..').xpath("@href").extract() 

但我想,以减少到一个XPath表达式,因为我打算允许用户输入自己的XPath表达式字符串。

回答

4

您可以检查元素是否有另一个子元素是这样的:

response.xpath('//a[img]/@href').extract() 

请注意,我使用的response.xpath()快捷方式,并提供了一个单一的XPath表达式。

+1

这不仅能解决我的问题,还能告诉我一个我不知道存在的捷径。谢谢! – wptreanor