【发布时间】:2016-10-26 13:58:56
【问题描述】:
我遇到了一个有点复杂的 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>
我首先要搜索文档中的所有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>
想要的结果://i.imgur.com/imgsrclink.jpg
我该如何构建这个 XPath?如果有帮助,我还将 Python (Scrapy) 与 XPath 一起使用。所以如果需要分离出问题,也可以使用Python。
【问题讨论】:
-
到目前为止你有没有尝试过?
-
我只到了我检查链接的图像扩展的部分,但对如何选择要抓取的链接感到困惑。
-
您想尝试完全使用 XPath 来实现结果,还是您使用的脚本语言可以实现一些逻辑?
-
哪个可以产生更清洁和更有效的解决方案。我正在使用 python。
-
我已将其添加到您的标签中。我不懂python,祝你好运!
标签: python xpath web-scraping scrapy