You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中用ImportXML提取无类/ID的div的data属性方法

用Google Sheets的IMPORTXML提取div的data属性值

嘿,我来帮你搞定这个问题!要从指定的div标签里提取data-film-id和data-film-release-year这两个属性值,核心是写对XPath查询语句,配合IMPORTXML函数就能轻松实现。

核心思路

IMPORTXML的基础语法是:=IMPORTXML(目标页面URL, XPath查询)。我们需要先通过div的class定位到目标元素,再直接提取对应的属性值。

具体公式示例

假设你把目标页面的URL放在了单元格A1里,那么:

  1. 提取data-film-id
    用这个公式:

    =IMPORTXML(A1, "//div[contains(@class, 'film-poster')]/@data-film-id")
    

    拆解一下逻辑:

    • //div:遍历页面中所有div元素
    • contains(@class, 'film-poster'):筛选出class属性里包含film-poster的div(用contains比精确匹配class更灵活,能避免页面class新增/调整导致公式失效)
    • /@data-film-id:直接提取该div的data-film-id属性值
  2. 提取data-film-release-year
    类似的,把属性名替换一下即可:

    =IMPORTXML(A1, "//div[contains(@class, 'film-poster')]/@data-film-release-year")
    

进阶技巧:精准定位单个元素

如果页面上有多个带film-poster类的div,只想提取第一个匹配的元素属性,可以在XPath里加索引[1]:

# 提取第一个匹配div的data-film-id
=IMPORTXML(A1, "//div[contains(@class, 'film-poster')][1]/@data-film-id")

要是你需要极端精准的定位(比如用完整的class字符串),也可以换成精确匹配写法:

=IMPORTXML(A1, "//div[@class='react-component film-poster film-poster-193260 poster linked-film-poster -attributed']/@data-film-id")

不过这种方式容错率低,一旦页面的class有变动(比如新增类名),公式就会失效,所以更推荐用contains的写法。

内容的提问来源于stack exchange,提问作者lise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:53:27