【问题标题】:Confusing outputs with IMPORTXML & IMPORTHTML使用 IMPORTXML 和 IMPORTHTML 混淆输出
【发布时间】:2021-02-13 08:41:31
【问题描述】:

我刚开始使用 Google 表格进行网络抓取,并希望澄清以下问题。

这是有助于说明问题的屏幕截图

使用的公式

    A28 =IMPORTXML("https://www.thehuboug.com/collections/all?limit=100&sort=price+asc","//div[@class='grid__item small--one-half medium--one-half large--one-quarter']/a/@href")
    B28 =CONCATENATE("https://www.thehuboug.com",A28)
    C28 =IMPORTXML(B28,"//div[@class='grid__item large--one-half']/h1")
    D28 =TRANSPOSE(INDEX(IMPORTHTML(B28,"table"),,2)) 

问题

  1. 我不明白为什么 C28 无法获取数据,但 C29 在获取数据方面没有问题。
  2. D28 能够获取数据,但 D29:D33 无法获取数据
  3. 当我更改 https -> http 时,我能够获取 D34 而不是 C34 的数据。这是什么意思?

最初,当我第一次输入我的公式时,所有内容都会被相应地提取出来。但是,第二天当我再次重新打开文件时,我开始得到这样的结果,错误 Resource at url not found。如果我在新工作表上复制相同的公式,一切都会再次相应地工作。总的来说,我对这里的行为感到很困惑,想了解可以改进什么来解决这个问题。

提前感谢您在这方面帮助我!

【问题讨论】:

    标签: web-scraping google-sheets google-sheets-formula


    【解决方案1】:

    A28:

    =IMPORTXML(
     "https://www.thehuboug.com/collections/all?limit=100&sort=price+asc",
     "//div[@class='grid__item small--one-half medium--one-half large--one-quarter']/a/@href")
    

    B28:

    =ARRAYFORMULA("https://www.thehuboug.com"&SUBSTITUTE(A28:A60, "/collections/all",, 1))
    

    C28 并向下拖动:

    =IMPORTXML(B28, "//div[@class='grid__item large--one-half']/h1")
    

    D28 并向下拖动:

    =IFERROR(TRANSPOSE(INDEX(IMPORTHTML(B28, "table"),,2)))
    

    【讨论】:

    • 只是为了确保我有正确的理解,您能帮忙提供一些有关更改的解释吗?
    • @user2832451 /collections/all 需要从 url 中排除
    • 谢谢!最后一个问题,您如何确定collections/all 是原因?
    • 我点击了生成的链接并注意到 url 被重定向(更正)了,例如。它不包含collections/all
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多