首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的Google中的XPath IMPORTXML命令总是返回#N/A

我的Google中的XPath IMPORTXML命令总是返回#N/A
EN

Stack Overflow用户
提问于 2020-06-16 01:45:53
回答 1查看 564关注 0票数 0

我试图从网站Sporcle (特别是从其中一个徽章中获得的日期)中获取一些数据,但是我从F12->右击元素-->Copy->Copy XPath得到的XPath似乎无法使用google命令IMPORTXML;我所得到的只是#N/A。

=IMPORTXML("https://www.sporcle.com/user/Jimmy/badges/earned/","//*[@id='badge-container']/div[1]/div[3]")

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-16 05:11:57

网站使用动态渲染。所以,经典的方法行不通。我认为有三种方法可以做到:

  • 使用IMPORTXML:我们从脚本元素中检索JSON数据,并使用公式解析它。
  • 使用IMPORTXML+ImportJSON脚本:我们从脚本元素中检索JSON数据,并使用脚本解析它(更干净)。
  • 加上IMPORTFROMWEB插件(请求的数量在“免费”计划中是有限的)。

解决方案1 :

产出:

首先,我们在A1中使用IMPORTXML提取JSON数据,并使用以下公式:

代码语言:javascript
运行
复制
=IMPORTXML(B1;"substring-before(substring-after(//*[contains(text(),'badge_limiter')],'var badgeList = [{'),'}]')")

然后,我们使用多个公式的组合来解析数据。在J2中,我们写道:

代码语言:javascript
运行
复制
=QUERY(ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(SUBSTITUE(SUBSTITUE(SUBSTITUE(REGEXREPLACE(M1;"(""\w+?_\w+?"":)";"");""",";""";");"""";"");"},";"");"{"));";"));"select Col1,Col6")

解决方案2 :

产出:

首先,我们在A1中使用IMPORTXML提取JSON数据,并使用以下公式:

代码语言:javascript
运行
复制
=IMPORTXML(B1;"substring-before(substring-after(//*[contains(text(),'badge_limiter')],'var badgeList = '),'}]')")&"}]"

然后我们用脚本解析数据。F1中使用的公式是:

代码语言:javascript
运行
复制
=ImportJSONFromSheet("Feuille 15";"/badge_name,/earned_date")

其中Feuille 15是我正在处理的工作表的名称。其余的是选择感兴趣的列。

解决方案3 :

产出:

用于徽章名称和日期的XPath:

代码语言:javascript
运行
复制
//td[@class='left-align link-col col-width-1']
//td[@class="col-width-3"]

然后在B5中传递公式

代码语言:javascript
运行
复制
=IMPORTFROMWEB(C1;C2:D2;B3:C3)

注意:一定要将jsRendering设置为TRUE

附带注意:我的总部设在欧洲,所以您可能需要在公式中用;替换,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62399693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档