为什么在使用 IMPORTXML 时可以获得 IMG ALT 而不是 IMG SRC?
While using IMPORTXML, why can I get IMG ALT but not IMG SRC?
我正在尝试使用 Google 表格作为抓取工具,从特定商店获取产品描述价格和图像。 https://www.aliexpress.com/store/group/xiaomi-Aqara-Smart-home/2389096_516541380.html
我正在尝试从该页面检索图像 URL,但最终无法正常工作。
<div class="pic">
<a class="pic-rind" href="//www.aliexpress.com/item/4000465413353.html?spm=2114.12010612.8148356.1.185c37e4M653t1" data-spm-anchor-id="2114.12010612.8148356.1">
<img class="picCore lazy-load" alt="Aqara Opple Zigbee Smart Switch Light Switch Smart App Control Wireless Wall Switch Work With Mijia App Apple Homekit" src="//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg"
style="visibility: visible;" data-spm-anchor-id="2114.12010612.8148356.i0.185c37e4M653t1"></a>
</div>
使用 //img[@class='picCore lazy-load']/@alt
可以正常工作 returns 替代文字。
然而,当我把@alt
改成@src
,(我真正想要的信息),它returns #N/A
(Error - 导入的内容为空)。
据我了解,我应该看到 //ae01.alicdn.......jpg
(实际图像来源)。
我在 Xpath 中遗漏了什么吗?
在此先感谢您的帮助!
编辑:如果我使用 @*
我实际上可以在 alt
之后看到预期的 src
结果,但它被扔到下面的行中,我认为这就是破坏的原因.不确定如何将它包含在一行或其他内容中。
该页面是使用 javascript 动态加载的,您问题中的示例 html 就是它的结果。如果没有一些技巧(您可以四处搜索脚本来处理动态加载的页面),GS 无法检索该数据。
幸运的是,并非所有数据都是这样加载的。如果您在该页面上禁用 JS,您将获得大部分相同的数据,包括 <img>
信息;只有这一次 - 它看起来像这样:
<img class="picCore lazy-load" image-src="//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W
/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg" alt="Aqara Opple Zigbee Smart Switch Light Switch Smart App Control Wireless Wall Switch
Work With Mijia App Apple Homekit">
因此您必须使用的 xpath 表达式是:
//img[@class='picCore lazy-load']/@image-src
那会输出
//ae01.alicdn.com/kf/Ha01fb531f16546368249b1efab8767341/Original-Aqara-Wireless-Flood-Water-Immersing-Smart-Sensor-IP67-Waterproof-Smart-Remote-Control-For-Mijia-Mi.jpg_200x200.jpg
//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg
//ae01.alicdn.com/kf/H91d4b49011494602be752b446c45b530e/Aqara-Wall-Switch-D1-ZigBee-Smart-Zero-Line-Fire-Wire-Light-Remote-Control-Wireless-Key-Wall.jpg_200x200.jpg
//ae01.alicdn.com/kf/H5078881ea11a443182bd3d3989ddf2a2r/Aqara-P3-Air-Conditioning-Companion-ZigBee-3-0-With-Temperature-Humidity-Sensor-Smart-Remote-Control-For.jpg_200x200.jpg
等等
我正在尝试使用 Google 表格作为抓取工具,从特定商店获取产品描述价格和图像。 https://www.aliexpress.com/store/group/xiaomi-Aqara-Smart-home/2389096_516541380.html
我正在尝试从该页面检索图像 URL,但最终无法正常工作。
<div class="pic">
<a class="pic-rind" href="//www.aliexpress.com/item/4000465413353.html?spm=2114.12010612.8148356.1.185c37e4M653t1" data-spm-anchor-id="2114.12010612.8148356.1">
<img class="picCore lazy-load" alt="Aqara Opple Zigbee Smart Switch Light Switch Smart App Control Wireless Wall Switch Work With Mijia App Apple Homekit" src="//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg"
style="visibility: visible;" data-spm-anchor-id="2114.12010612.8148356.i0.185c37e4M653t1"></a>
</div>
使用 //img[@class='picCore lazy-load']/@alt
可以正常工作 returns 替代文字。
然而,当我把@alt
改成@src
,(我真正想要的信息),它returns #N/A
(Error - 导入的内容为空)。
据我了解,我应该看到 //ae01.alicdn.......jpg
(实际图像来源)。
我在 Xpath 中遗漏了什么吗?
在此先感谢您的帮助!
编辑:如果我使用 @*
我实际上可以在 alt
之后看到预期的 src
结果,但它被扔到下面的行中,我认为这就是破坏的原因.不确定如何将它包含在一行或其他内容中。
该页面是使用 javascript 动态加载的,您问题中的示例 html 就是它的结果。如果没有一些技巧(您可以四处搜索脚本来处理动态加载的页面),GS 无法检索该数据。
幸运的是,并非所有数据都是这样加载的。如果您在该页面上禁用 JS,您将获得大部分相同的数据,包括 <img>
信息;只有这一次 - 它看起来像这样:
<img class="picCore lazy-load" image-src="//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W
/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg" alt="Aqara Opple Zigbee Smart Switch Light Switch Smart App Control Wireless Wall Switch
Work With Mijia App Apple Homekit">
因此您必须使用的 xpath 表达式是:
//img[@class='picCore lazy-load']/@image-src
那会输出
//ae01.alicdn.com/kf/Ha01fb531f16546368249b1efab8767341/Original-Aqara-Wireless-Flood-Water-Immersing-Smart-Sensor-IP67-Waterproof-Smart-Remote-Control-For-Mijia-Mi.jpg_200x200.jpg
//ae01.alicdn.com/kf/Hc5db6afe8de841f9a6ef4673dfb957c5W/Aqara-Opple-Zigbee-Smart-Switch-Light-Switch-Smart-App-Control-Wireless-Wall-Switch-Work-With-Mijia.jpg_200x200.jpg
//ae01.alicdn.com/kf/H91d4b49011494602be752b446c45b530e/Aqara-Wall-Switch-D1-ZigBee-Smart-Zero-Line-Fire-Wire-Light-Remote-Control-Wireless-Key-Wall.jpg_200x200.jpg
//ae01.alicdn.com/kf/H5078881ea11a443182bd3d3989ddf2a2r/Aqara-P3-Air-Conditioning-Companion-ZigBee-3-0-With-Temperature-Humidity-Sensor-Smart-Remote-Control-For.jpg_200x200.jpg
等等