问题标签 [google-sheets-importxml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - 对第一个元素以上使用 Becker 的 XPath 方法?
我正在尝试使用 importXML 在 Google 应用电子表格上解析 XML 文件。
我的问题是我的 XML 文档是这样设置的:
并且我正在尝试选择所有电子邮件元素(我尝试过 //staff/email,但如果节点不存在,它不会插入 null),如果电子邮件节点不存在则写入 NULL(如上面的例子)。
我尝试了下面的 XPath 查询,但它只是选择第一个电子邮件元素,并写入 1 行,而不是写入 n 行,其中 n 是“员工”节点的数量。
=ImportXML(" http://www.engr.udel.edu/mf/test_staff.xml ";"concat(/staffList/staff/email, substring('not-found', 1 div not(/staffList/staff/电子邮件[节点()])))“)
有人有什么想法吗?提前致谢!
dom - 与 importXML 一起使用的 XPath 表达式
从网站https://www.google.co.uk/finance?cid=704531我正在尝试导入字段“范围”和“52 周”以及中间该组中的其他字段。我看过 XPath 并对此感到非常困惑。
在单元格 A1 中,我有https://www.google.co.uk/finance?cid=704531
.
在单元格 B1 我有
但结果是错误的。
这个 HTML 结构的正确 XPath 表达式是什么?
google-sheets - 如何显示使用 IMPORTXML 函数加载的部分信息?
这是我在 A1 中插入的公式:
如果您测试此公式,它将返回大量信息。我想知道如何在 A 列和 B 列中仅显示从第 26 行到第 57 行可用的信息。
xpath - 谷歌电子表格 importXML 部分工作
当我尝试使用谷歌电子表格中的 xPath 规则从autoscout24获取所有广告标题时:
结果为 #NA - xPath 查询未收到任何数据。
但是,当我尝试使用 xPath 规则从同一页面获取其他元素时,例如“Kryteria wyszukiwania:”:
输出是正确的。
可能是什么问题呢?
html - Google 电子表格中的 Xpath 问题 (ImportXML)
这是一个很棒的网站,只需滚动和搜索其他帖子,我就已经回答了很多问题。不幸的是,我似乎无法找到专门解决此问题的答案,并想我会尝试发布并寻求帮助-
我正在使用 ImportXML 和谷歌电子表格从零售网站“抓取”一些产品描述。它在大多数情况下都运行良好,我通过两种方式完成了它:
1)对帖子描述部分的具体调用:
2)调用整个“产品卡”,它还返回产品标题、价格、发布时间等信息,并将这些项目放在我的 Google 电子表格中的相邻单元格中:
两者都运行良好,但我使用每种方法都遇到了不同的问题。如果我能解决这些问题中的一个,那么我会很高兴地放弃另一种方法,我只需要其中一个来工作。问题是:
方法 1) 网站禁止卖家在产品发布中包含联系信息——当他们包含电子邮件地址时,网站会自动阻止它,因此在发布中它只是显示为“......您可以通过 [obscured] 联系我]“ 或类似的东西。[obscured] 出现在不同颜色的文本中,显然以某种方式受到不同的对待。当我使用方法 1 抓取这些描述时,ImportXML 在遇到 [obscured] 一词时似乎会被“碰撞”,并将该产品描述中的剩余文本传递到我的电子表格中的下一个单元格。这破坏了工作表的整个组织,我想找到一种方法,让 ImportXML 忽略 [模糊],并且仍然将产品描述的整个文本放在一个单元格中。
方法2)我对整个“产品卡”的调用如下:
如前所述,这很好用(对于大多数产品),我不介意在相邻单元格中发布附加信息(价格、日期等)。然而,该网站还允许某些产品被“特色化”,它们出现在网站上的不同颜色框中,因此更有可能引起买家的注意。使用这种方法,“特色”产品不会被抓取或导入到我的电子表格中,而只是被忽略了。
描述(方法 1)和产品卡片(方法 2)的源代码(在实际站点上)(通过 Safari 中的“检查元素”)如下所示(对于普通产品 (a) 和特色产品 (b) ):
(一个)
(二)
您可以在 (a) 和 (b) 中看到我在方法 1 中调用的“desc”类,这似乎工作正常。从我在这个网站上的阅读中,我想我已经了解到一个给定的类不能超过一个单词,因此使用“desc collapsed descFull”和“productCard tracked”和“productCard features tracked”不表示标题中包含 3、2 和 3 个单词的类,而是分配了多个类的情况?
无论如何,对“desc”(方法 1)的调用工作正常,并且似乎得到了所有描述。因此,在方法 2 中,我会认为调用“productCard”会获取所有产品的信息,包括特色产品和常规产品,因为“特色”是分配给某些“产品卡”的额外类。如果我调用所有'productCard',不应该返回正常的和特色的吗?目前情况并非如此。我曾尝试将“跟踪”和“特色”称为类,但都不返回任何内容,因此我认为它们是自己的类相当于“productCard”的逻辑可能有缺陷。
总之,方法 1 中的“desc”调用工作正常,甚至可以获取“特色”产品的描述。但是,当联系信息包含在描述中并显示为 [模糊] 时,它会将我的数据撞到电子表格中的下一个单元格,紧跟在单词后面。这会破坏并破坏所有组织。
在方法 2 中,我根本没有得到特色产品,这大大削弱了我正在尝试做的事情。这些问题中的任何一个(或两个!)都可以解决吗?
非常感谢你能给我的任何帮助。
***更新:如以下评论所示,通过检索常规产品和特色产品,建议使用“包含”改进方法 2。但是,特色产品卡片具有额外的文本元素,并且由于使用此方法刮取整张卡片,因此特色产品与常规产品的单元格对齐方式不匹配。如果有办法修复方法 1,那么这会好得多。如以下评论中所述,[模糊]文本出现在“跨度”中,该“跨度”紧随其后/缩进
作为
有什么方法可以像我一样导入'desc',但是告诉XPath本质上'忽略'[模糊]跨度,或者至少以一种不会在[之后立即生成描述文本的方式处理它模糊] 出现一个单元格?
非常感谢大家!
xpath - ImportXML 和 Google 电子表格问题
我正在从网站“抓取”一些产品描述,并使用 importXML 将它们放入谷歌电子表格中。
它进展得相当顺利,但我很想纠正一个主要问题,我需要你的帮助!
有问题的网站禁止发布产品的人在产品描述中包含联系信息(通常是电子邮件地址)。有时人们会忽略该规则,并且无论如何都会包含联系信息。发生这种情况时,网站会自动隐藏产品描述中的联系信息,将其替换为 [obscured],例如“...请随时通过 [obscured] 与我联系”或类似的内容。[被遮蔽的] 以不同的颜色出现,并且网站显然对它们进行了不同的处理。
当这些产品描述被导入到我的电子表格中时,[obscured] 会导致抓取有点“碰撞”——描述文本在 [obscured] 之前停止,单词 [obscured] 单独出现在相邻的单元格中, [obscured] 之后的描述文本然后在第三个单元格中继续。
这种分离破坏了我的电子表格中的对齐方式和逻辑,因为具有 [模糊] 单词的产品描述会与那些没有的产品描述分开并不一致。
我希望能够让我的 importXML 或 XPath 适应这一点,并且基本上“忽略”[模糊]。我不介意它被包含在刮掉的描述中,但我想停止分解成 3 个独立的相邻单元格。
[obscured] 是“跨度”的一部分,它似乎偶尔位于我正在调用的描述类“desc”中。
有没有办法做到这一点?指示 importXML 导入有时可能出现在其中的跨度的“desc”类但“忽略/省略/异常”?
我在下面包含了源代码(Safari 中的检查元素):
如前所述,此跨度仅出现在某些产品描述中,而不是全部。有谁知道我会在 importXML 中使用哪种语言来调用“desc”但忽略“span”,或者在遇到 [obscured] 时阻止拆分为 3 个单元格?
我现在的电话是
除非遇到 [obscured] 跨度,否则效果很好。
感谢您提供的任何帮助!
xml - “无法解析 XML 内容”
当我尝试使用 IMPORTXML 函数时,Google 电子表格给我一个错误,指出“无法解析导入的 XML 内容”。
单元格内容:
=IMPORTXML("http://api.eveonline.com/char/AccountBalance.xml.aspx?keyID=myKey&vCode=myVCode&characterID=myCharID","/eveapi/result/rowset/row@balance")
其中 myKey、myVCode 和 myCharID 都是有效的(通过地址栏使用实际的键/ID 访问链接会给我一个干净的 XML 文档)。
XPATH 尝试返回节点“row”中属性“balance”的值。eveapi 是一个根音符。
我在网上找到的关于这个问题的唯一信息是 IMPORTXML 无法解析 js,但没有 js 可以处理 - 输出实际上是一个纯 XML 文档。
xpath - Google 电子表格“文档名称”ImportXML XPath 查询
我想在 Google 电子表格中编写 ImportXML 函数以返回同一电子表格的文档名称。例如,我的电子表格标题为“Kimchi”。我想'在单元格“A1”中返回该名称,以根据文档名称自动执行电子表格中的一系列功能。对于我将从原始模板复制并重命名的一百个左右的电子表格中的每一个,我都懒得在单元格中输入值。
我似乎无法确定正确的查询结构。
这段 XML 看起来很有希望,但我似乎无法让查询拉取它:
到目前为止我已经尝试过...
它返回...
我尝试了各种变体,有些可能同样糟糕。以下是一些看起来很有趣的 XML 结构:
但是 ImportXML 函数中的这个 XPath 查询也不起作用
它回来了...
我难住了。
PS 在我与全世界分享文件后,这最终奏效了:
xpath - 使用 Google 电子表格在 ImportXML 期间导入内部错误
我正在尝试将彭博网站上的一些数据(市值)导入我的谷歌电子表格,但谷歌给了我Import Internal Error.
我真的不知道是什么导致了这个问题,但我曾经用 xpath 查询来克服它。这次我找不到有效的 xpath 查询。
有谁知道这个错误的原因,或者我怎样才能让它工作?
xpath - Google spreadsheet formula for url with a variable
What's the formula to display an url in google sheet when part of said url is a variable from another cell?
I'll explain: in one cell I have this formula (used to scrape text with class 'description' in an html webpage, doesn't matter for the purpose of the question though)
=importXML("http://www.xxx.it/code/9788823506183/doc/book.html","//span[@class='description']")
The numerical part changes everytime based on the value in another cell, say B3.
Tried =importXML("http://www.xxx.it/code/(B3)/doc/book.html","//span[@class='description']")
but of course it won't work.
Then I thought I could dinamically create the url in B2 and do like this:
=importXML("B2","//span[@class='description']")
One step closer but I'm stuck anyway, how can I generate such url in B2? I can't find a suitable function in the docs. I could only come up with:
in A1 = 9788823506183
in B2 = http://www.xxx.it/code/("A1")/doc/book.html
but it's not the correct syntax. :(