首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Gamestop导入Google的价格

从Gamestop导入Google的价格
EN

Web Applications用户
提问于 2018-07-03 20:34:31
回答 1查看 706关注 0票数 1

我试图从给定的Google中获得一个价格,并将其导入到Google文档中,但我似乎无法让它工作。我尝试过使用importXML公式,但似乎没有正确地使用语法。

例如,我试图从这个网址:https://www.gamestop.com/xbox-360/games/call-of-duty-modern-warfare-2/74392中得到价格,但是不能正确地这样做。我尝试输入的每个语法都返回:

“导入的XML不能被解析”或“无内容”。

这是我目前正在尝试的,但不起作用:

代码语言:javascript
运行
复制
=IMPORTXML("https://www.gamestop.com/xbox-360/games/call-of-duty-modern- 
 warfare-2/74392","class='ats-prodBuy- price'/html/body/form/div[3]/div[2]/div[2]/div[1]/div/div/div[2]/div/div[5]/div[2]/div[2]/div[2]/h3")

为了让它正常工作,我需要做些什么?

EN

回答 1

Web Applications用户

发布于 2018-07-04 07:05:10

需要注意的两件事--为什么您的公式不起作用--1是语法错误--我将解释--和2- -这不是您的错--因为它们填充数据的方式很可能来自使用模板的某个框架。

至于进口你们的价格--我不能保证这永远是可靠的--但是我用几种不同的产品测试了它,它似乎总是给出正确的价格。

代码语言:javascript
运行
复制
=TRIM(regexextract(regexreplace(concatenate(IMPORTXML(A1,"//head")),"\n"," "), "(\$\W\d+\S+)+"))

我在上面所做的是从站点的头部分提取标签,然后使用concatenate将所有的标记连接在一起。

正则替换部分是删除所有的回车和换行符--仅仅是因为它们让我烦透了,而且不可能用一个比你能看到的更大的单元格工作。

代码语言:javascript
运行
复制
 The final regexextract (\$\W\d+\S+) pattern means the following: 

 \$ is an escaped dollar sign, since $ is reserved otherwise to
 mean end of line

 so it looks for that symbol followed by a special character '\W' 

 followed by any digit '\d' 

 and then any characters following up until the next space '\S+'

对于xpath语法--请注意,我使用head实际上是一种边缘情况--而且大多数站点都没有将它们的数据添加到网站的元数据中--不过,对于其他站点来说,如果您想使用类名和h3元素来获取字段,则可以这样构造您的公式:

代码语言:javascript
运行
复制
=importxml("url", "//*[@class='ats-prodBuy-price']")

or 

=importxml("url", "//h3")

虽然h3本身可能很烦人,但在大多数常见的情况下,它可能不是页面上唯一的h3

最后,我没有一个很好的解释,为什么价格会出现星号??或者为什么当我使用importxml时,它会加载到头部,但在html本身中技术上是不可见的,但是这样就可以了。

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

https://webapps.stackexchange.com/questions/118428

复制
相关文章

相似问题

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