如何在Google表格中使用IMPORTXML和Xpath捕获<img src> URL?

时间:2019-10-12 08:09:45

标签: html xml xpath google-sheets google-sheets-importxml

长期读者,首次海报。

尝试使用Google表格IMPORTXML函数从网页中获取图像的URL或URL代码段。我相当确定我的Xpath正确,但是我什么也没收到,或者“无法解析数据”-但是,我在这里看到了其他示例,这些人以这种方式在Google表格中抓取网址,尽管略有不同。不同的情况,似乎在这里都不适用。

尝试从this page中抢夺-这是相关的HTML:

        <div class="bx-wrapper" style="max-width: 100%;"><div class="bx-viewport" style="width: 100%; overflow: hidden; position: relative; height: 540px;"><ul class="A_ProductImgSlider" style="width: auto; position: relative;">
         <li class="A_ItemList" style="float: none; list-style: none; position: absolute; width: 540px; z-index: 50; display: block;">
          <div class="image A_ItemImg A_SquareOuter">
           <img src="/ec/img/D3-64I011012_M_s.jpg" onerror="this.src='/ec/images/common/NoImage.gif'" alt="main product image" id="mainImage" class="A_ItemProductImg A_Square">
          </div>
         </li>
         <li class="A_ItemList" style="float: none; list-style: none; position: absolute; width: 540px; z-index: 0; display: none;"><div class="image A_ItemImg A_SquareOuter"><img src="/ec/img/D3-64I011012_S_1m.jpg" alt="product image 1" class="A_ItemProductImg A_Square"></div></li>
         <li class="A_ItemList" style="float: none; list-style: none; position: absolute; width: 540px; z-index: 0; display: none;"><div class="image A_ItemImg A_SquareOuter"><img src="/ec/img/D3-64I011012_S_2m.jpg" alt="product image 2" class="A_ItemProductImg 

我进行了以下查询,以尝试使用后续的HTML:

=IMPORTXML(A2,"//*[@id='product_image']/div[1]/div[1]/ul/li[1]/div/img src")

具有相关URL的A2。

我认为Xpath在这里是正确的,但是不确定为什么它不会给我我想要的结果。我玩了一点,但是没有运气。

非常感谢您抽出宝贵的时间阅读并提供帮助。

1 个答案:

答案 0 :(得分:0)

这个答案怎么样?请认为这只是几个答案之一。

示例公式:

在这种情况下, ERROR: Command errored out with exit status 1: command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-tt98fv7k/pgimp/setup.py'"'"'; __file__='"'"'/tmp/pip-install-tt98fv7k/pgimp/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info cwd: /tmp/pip-install-tt98fv7k/pgimp/ Complete output (7 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-tt98fv7k/pgimp/setup.py", line 42, in <module> check_python2_installation() File "/tmp/pip-install-tt98fv7k/pgimp/setup.py", line 38, in check_python2_installation 'At least one of the following packages is missing in the python2 installation: ' + ', '.join(requirements) __main__.GimpInstallationException: At least one of the following packages is missing in the python2 installation: numpy, typing ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. 放在单元格“ A1”中。

模式1:

https://www.mikigakki.com/ec/pro/disp/H/D3-64I011012?sFlg=2

enter image description here

模式2:

=IMPORTXML(A1,"//img/@src")

enter image description here

模式3:

=IMPORTXML(A1,"//li//@src")

enter image description here

模式4:

=IMPORTXML(A1,"//li[position()>1]//@src")

enter image description here

模式5:

=ARRAYFORMULA("https://www.mikigakki.com"&IMPORTXML(A1,"//li[position()>1]//@src"))

enter image description here

注意:

  • 如果要使用=ARRAYFORMULA("https://www.mikigakki.com"&IMPORTXML(A1,"//li[1]//@src")) 检索第一个图片网址,也可以使用以下公式。

    *[@id='product_image']

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。