ImportXML和Google Spreadsheet问题

时间:2014-03-18 21:19:50

标签: xpath google-sheets

我正在刮擦'来自网站的一些产品说明,并使用importXML将它们带入谷歌电子表格。

它已经相当顺利,但有一个我想要纠正的主要障碍,我需要你的帮助!

相关网站禁止发布产品的人员在产品说明中包含联系信息(通常是电子邮件地址)。有时人们会忽略该规则,并且无论如何都要包含联系信息。发生这种情况时,网站会自动隐藏产品说明中的联系信息,将其替换为[模糊],如在" ...请随时通过[模糊]"与我联系。或接近那个。 [模糊]以不同的颜色显示,网站明显对待它们。

将这些产品说明导入我的电子表格后,[遮挡]会导致刮痕变得“碰撞” - 描述文字在[遮挡]之前停止,出现[遮盖]一词在一个相邻的单元格中,然后在第三个单元格中继续[隐藏]后面的描述文本。

这种分离破坏了我的电子表格中的对齐和逻辑,因为具有[遮蔽]单词的产品描述会被破坏,并且与那些没有遮挡的单词不一致。

我希望能够让我的importXML或XPath适应这一点,并且基本上“忽略”' [模糊]。我不介意它被包含在描述的描述中,但我想停止分解成3个独立的相邻单元格。

[模糊]是“跨越”的一部分。似乎偶尔会出现在描述课程中。我在打电话。

有办法做到这一点吗?指示importXML导入' desc' class BUT'忽略/省略/异常'跨度有时可能出现在?

我已经在下面包含了源代码(Safari中的inspect元素):

<div class="desc descFull collapsed">
<span class="obscureText">[obscured]</span>

如上所述,此范围仅出现在某些产品说明中,而不是所有产品说明中。 有谁知道我会在importXML中使用哪种语言来调用&#39; desc&#39;但忽略了&#39; span&#39;,或者在遇到[模糊]时阻止分裂成3个单元格?

我目前的电话是

=ImportXML(A1,"//div[@class='desc']")

工作正常,除非遇到[模糊]跨度。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

除非Google Drive违反Xpath的定义,否则Xpath不能用于查询CSS类,例如CSS选择器。

Xpath //div[@class='desc']仅匹配div元素与class属性,字面为"desc"。由于字符串不同,它不会匹配"desc descFull collapsed"

至于排除模糊节点的文本,这将需要找到文本节点并排除,这将返回节点集,而不是字符串,并且wouldn't be able to concatenate these back together using XPath 1.0。如果Google云端硬盘使用XPath 2.0,则可能会使用该链接问题中的技术。