=ARRAYFORMULA("https://www.amazon.com/product-reviews/B08C1W5N87/ref=cm_cr_arp_d_viewopt_rvwer?ie=UTF8&reviewerType=avp_only_reviews&sortBy=recent&pageNumber="&SEQUENCE(5,1,1,1))
我使用上面的代码来获取我想要废弃数据的链接。有 5 个链接。
=IMPORTXML(A6,"/html/body/div[1]/div[3]/div/div[1]/div/div[1]/div[5]/div[3]/div/div[*]/div/div/div[2]/a[1]/i")
我还使用上面的公式从链接中删除我想要的数据。 A6 指的是第一个公式创建的第一个链接。
我想做的是,如果可能的话,我想从 5 个链接中提取数据并将它们列在一列中。
=IMPORTXML(ARRAYFORMULA("https://www.amazon.com/product-reviews/B08C1W5N87/ref=cm_cr_arp_d_viewopt_rvwer?ie=UTF8&reviewerType=avp_only_reviews&sortBy=recent&pageNumber="&SEQUENCE(5,1,1,1)),"/html/body/div[1]/div[3]/div/div[1]/div/div[1]/div[5]/div[3]/div/div[*]/div/div/div[2]/a[1]/i")
上面的公式不成立。
=ARRAYFORMULA(IMPORTXML("https://www.amazon.com/product-reviews/B08C1W5N87/ref=cm_cr_arp_d_viewopt_rvwer?ie=UTF8&reviewerType=avp_only_reviews&sortBy=recent&pageNumber="&SEQUENCE(5,1,1,1),"/html/body/div[1]/div[3]/div/div[1]/div/div[1]/div[5]/div[3]/div/div[*]/div/div/div[2]/a[1]/i"))
上面的公式并不适用。它总是只抓取第一个链接的数据。
提前感谢您的帮助。
最佳答案
请记住,IMPORTXML 本身是一种“arrayformula 类型”,因此它在 ARRAYFORMULA 下不受支持
在您的例子中,尝试将 5 个 IMPORTRANGE 公式硬编码到数组 {} 中,例如:
={IMPORTRANGE();
IMPORTRANGE();
IMPORTRANGE();
etc}
更新
使用新的 LAMBDA 函数可以一次性完成:
=INDEX(TRIM(FLATTEN(SPLIT(FLATTEN(BYCOL(
"https://www.amazon.com/product-reviews/B08C1W5N87/ref=cm_cr_arp_d_viewopt_rvwer?ie=UTF8&reviewerType=avp_only_reviews&sortBy=recent&pageNumber="&
SEQUENCE(1,5,1,1), LAMBDA(x, QUERY(IMPORTXML(x,
"/html/body/div[1]/div[3]/div/div[1]/div/div[1]/div[5]/div[3]/div/div[*]/div/div/div[2]/a[1]/i")&"×",,9^9)))), "×"))))
关于google-sheets - 如何在 Google 表格中一起使用 IMPORTXML 和 SEQUENCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73616708/