关于python:如何通过lxml XPath从HTML提取img src?

How do I extract img src from HTML via lxml XPath?

我正在尝试使用python / lxml和xpath()命令提取图像URl,但是在隔离url本身时遇到了麻烦。

这是我想要的img src周围的HTML:

1
2
3
4
5
6
7
8
<div data-index="0" data-za-action="Photo Lightbox - Open" data-za-
category="Homes" class="img-wrapper za-track-event zsg-lightbox-show"
data-target-id="hdp-photo-lightbox" data-za-label="position: 0, total:
18, id: 10660534745"
id="yui_3_18_1_2_1519884476676_1986"><img
src="https://photos.zillowstatic.com/p_h/IS2fordnekys6d1000000000.jpg"
onload="if (typeof ClientProfiler !== 'undefined') {
ClientProfiler.profile('HDPFirstPhotoLoaded') }"
id="X1-
IAgz3dcnekys6d1000000000_ptw8e"
class="hip-photo">

具体来说,我想隔离https://photos.zillowstatic.com/p_h/IS2fordnekys6d1000000000.jpg网址。

我尝试了几种方法,但都没有成功,包括以下方面的变化:

1
2
xpath(".//img[@class='hip-photo']/@src")
xpath(".//img[@class='hip-photo']//text()")


.//相对于当前节点搜索,在您的问题中未指定。 如果使用//,它将搜索整个文档。 另请参阅XPath中.//和// *有什么区别?

如果您希望搜索整个文档XPath,

1
//img[@class="hip-photo"]/@src

将选择所有img元素的所有src属性,其class属性值为"hip-photo"


我会尝试Beautifulsoup(bs4)库。 您的img标记具有ID,因此您可以在bs4中调用find函数。

1
source_code.find('img', id=its_id)

然后从标签获取SCR。

关于您的问题的类似问题

bs4 Youtube教程(如果您是新手)

如果您以前从未使用过Beautifulsoup,则它非常容易学习,因此我建议您对其进行研究。

希望这可以帮助!