2016-07-11 147 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