【发布时间】:2015-04-28 08:37:45
【问题描述】:
我想提取图片的链接,但前提是该图片的名称中不包含“thumb”一词。
<a title="" rev="http://insales.ru/images/ large.jpeg" href="http://insales.ru/images/T001.jpeg" class="TestClass">
<img src="http://insales.ru/images/thumb.jpeg" class="productimage">
</a>
所以如果只有图片名称没有“thumb”关键字,我想从<img>标签中提取“http://insales.ru/images/thumb.jpeg”行。
我正在尝试这样做:
//a[@class='TestClass']//img[not(contains(@src, 'thumb'))]
不工作。因为我现在正在丢失来自<a> 的数据。
有时我会直接从<a> 标签中提取链接。从 rev 或 href。但有时来自<img> 的<a> 的孩子。
如何指定允许从父级或其子级提取链接的 xpath。但是孩子是有条件的。
详情:
我正在解析来自在线商店的数据。具体来说,我正在尝试获取产品的图像。我提供的代码代表产品的一张图片。我只需要大版本的图片。不是小缩略图。问题是有时链接到<a> 标签的 rev 属性中显示的大图。有时它会出现在<img> 标签的 src 属性中。
案例1(我需要在<a>标签和rev属性中提供链接
<li class='product-item'>
<a title="" rev="http://insales.ru/images/ large.jpeg" href="http://insales.ru/images/T001.jpeg" class="MagicThumb-swap">
<img src="http://insales.ru/images/thumb_T001" class="productimage" title=" Tissot">
</a>
</li>
在这种情况下,我需要提取 http://insales.ru/images/large.jpeg 行。我不需要在<img> 标签中的http://insales.ru/images/thumb_T001。
案例2(我需要在<img>标签和src属性中提供链接)
<div class='item'>
<a title="" id="Zoomer" class="MagicZoomPlus jqzoom modal" href="http:// insales.ru/images/thumbi14.jpg" >
<img src="http://insales.ru/images/large_i14.jpg" title="Orient” class="productimage">
</a>
</div>
在第二种情况下,我需要提取 http://insales.ru/images/large_i14.jpg 行。而且我不需要 <a> 标签中的 http://insales.ru/images/thumbi14.jpg。
我知道如何在这两种情况下提取链接。但我不知道如何制作通用 xpath 以允许在两种情况下获取大图片的链接。那就是为什么我要根据链接中的图片名称来创建条件。如果链接中有“拇指”关键字,我会尝试将其过滤掉。
【问题讨论】:
-
您想从
a元素中获得哪一段HTML?请展示一个更大的 HTML 示例,并包含所有可能的场景:应该直接从a元素中选择某些东西的情况,应该选择img元素的source属性的情况,一种情况不应该选择img/@source,并且应该选择a中没有任何内容的情况(如果有这种情况)。并显示您希望从更大样本中获得的准确输出。 -
我对我正在尝试做的事情做了更具体的描述。在我的问题中详细说明之后。