XPath选择图像链接 - img src的父href链接只有它存在,否则选择img src链接

dtg*_*gee 5 python xpath scrapy web-scraping

我遇到了一个有点复杂的XPath问题.考虑一下网页的一部分HTML(我使用了Imgur并替换了一些文本):

<a href="//i.imgur.com/ahreflink.jpg" class="zoom">
    <img class="post-image-placeholder" src="//i.imgur.com/imgsrclink.jpg">
    </img>
</a>
Run Code Online (Sandbox Code Playgroud)

我首先要搜索img文档中的所有标记并找到它们对应的srces.接下来,我想检查img src链接是否包含图像文件扩展名(.jpeg,.jpg,.gif,.png).如果它不包含图像扩展名,请不要抓取它.在这种情况下,它具有图像扩展名.现在我们想弄清楚我们想要抓住哪个链接.既然parent href存在,我们应该抓住相应的链接.

期望的结果: //i.imgur.com/ahreflink.jpg

但现在让我们说不parent href存在:

<a name="missing! oh no!">
    <img class="post-image-placeholder" src="//i.imgur.com/imgsrclink.jpg">
    </img>
</a>
Run Code Online (Sandbox Code Playgroud)

期望的结果: //i.imgur.com/imgsrclink.jpg

我该如何构建这个XPath?如果它有帮助,我也在使用Python(Scrapy)和XPath.因此,如果需要分离问题,也可以使用Python.

o11*_*11c 5

这在单个xpath表达式中非常简单:

//a[not(@href)]/img/@src | //a[img]/@href
Run Code Online (Sandbox Code Playgroud)