【问题标题】:Google sheet ImportXML returns Imported Content is EmptyGoogle 工作表 ImportXML 返回 Imported Content is Empty
【发布时间】:2020-04-12 06:49:15
【问题描述】:

我想从 Google 电子表格中解析来自 websiteIMPORTXML 的数据。

=IMPORTXML("https://track.aftership.com/cnexps/LL443994747LU?referrer=https%3A%2F%2Fwww.aftership.com%2Ffr%2Fcouriers%2Fcnexps","//*[@id='__next']/div[1]/div/div[2]/div/div/div/div/div/div/section[2]/p")

目标是获得“在途”的价值

看了其他类似问题的帖子,怕是无法解析内容。你能确认一下吗?您能提出一个解决方法吗?

感谢您的帮助,

【问题讨论】:

    标签: xpath web-scraping google-sheets google-sheets-importxml


    【解决方案1】:

    由于使用了动态渲染,因此无法直接解析内容。需要 Selenium 或其他特定工具。一种可能的解决方法:

    由于“track.aftership.com”有多层保护来直接获取数据,我们可以使用其他服务。 “packages24.com”似乎是一个不错的候选者。内容也不能直接解析,但这次我们可以解决问题。

    在 B2 中,您有请求的链接(在“=”之后添加您的跟踪号)

    https://www.packages24.com/track?number=LL443994747LU
    

    在B3中,IMPORTXML+substring函数提取包含授权查询API的url。

    =IMPORTXML(B2;"substring-after(substring-before(//script[contains(.,'api.packages24')],""',""),'url: ')")
    

    在 B5 中,ImportJSON 函数(根据 B3 中找到的 url 导入 JSON)+QUERY 仅选择“状态”列和最后一条记录。

    =QUERY(ImportJSON(B3);"SELECT Col3 limit 1";1)
    

    在 GoogleSheets 中导入 JSON 数据的脚本如下(感谢 Paul Gambill):https://gist.github.com/paulgambill/cacd19da95a1421d3164

    在 B6 中你有结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多