我正在学习Scrapy Images Pipeline,我确实可以将一个图像下载到我的本地文件夹,并得到Scrapy专家对stackoverflow的一些特殊帮助。
然而,Xpath令我头疼,我无法找出不同代码集的xpath选择器。它在下面给出,我想提取与 data-zoomImage 属性相关联的链接。
<div class="imgWrapper">
<img src="http://img1a.flixcart.com/img/thumb-default.jpg"
class="productImage current"
data-imageId="IMAE3RDWTGGCWGHQ"
data-src="http://img6a.flixcart.com/image/lenovo-400x400.jpeg"
data-zoomImage="http://img5a.flixcart.com/image/lenovo-1100x1100.jpeg
</div>
我尝试使用以下选择器提取链接,但没有运气。
('//img/@data-zoomImage/@src').extract()
你能帮助我吗?
更新:
我可以使用以下选择器下载src属性
('//img[@class="productImage current"]/@src').extract()
我可以通过使用 @ data-src 更改 @src 来下载data-src属性。但是我无法通过相同的逻辑选择 data-zoomImage 属性。知道为什么会发生这种情况的任何想法?
答案 0 :(得分:2)
有时这可能会有所帮助..
In [26]: t = """ <div class="imgWrapper">
<img src="http://img1a.flixcart.com/img/thumb-default.jpg"
class="productImage current"
data-imageId="IMAE3RDWTGGCWGHQ"
data-src="http://img6a.flixcart.com/image/lenovo-400x400.jpeg"
data-zoomImage="http://img5a.flixcart.com/image/lenovo-1100x1100.jpeg
</div> """
In [27]: from scrapy.selector import Selector
In [28]: sel.xpath('//img[@class="productImage current"]/@data-zoomimage').extract()
Out[28]: [u'http://img5a.flixcart.com/image/lenovo-1100x1100.jpeg\n</div>']
In [29]: sel.xpath('//img[@class="productImage current"]/@data-zoomImage').extract()
Out[29]: []
不知道为什么属性名称从 data-zoomImage 更改为 data-zoomimage