来自url-list的Importxml价格 - 每个来源的语法不同

时间:2016-12-08 11:29:56

标签: html xml xpath import google-sheets

我正在尝试对Google电子表格中的产品列表进行价格检查,这些产品来自不同的网络商店,并且使用了多种语法/语义。如果在Meta标签中提到价格,则提取正常,如果在span内容或span内联中,它有时会起作用。

问题1:我想帮助修复跨度提取代码,因为它们并不总是有效,即使存在于html中也是如此。

问题2:当提取被修复时,我想组合所有代码,这样如果一个不起作用,公式将测试下一个选项。谁可以帮助我?这样做可以减少获得价格所需的时间(现在,对于包含250种产品的电子表格,需要几个小时。

提取货币并添加货币(如果尚未包含货币)也会有所帮助。

我想从中提取价格的3个最常用的html结构是:

<meta itemprop="price" content="1999">

单元格A:https://www.tanum.no/_hobby-og-fritid/maling-og-tegning/colour-me-good:-cara-delevingne-9780957314870

单元格B:=IF(ISURL(A1); IMPORTXML(A1 ;"//meta[@itemprop='price']/@content");"NULL")

= 119(代码适用于所有使用&#34; meta&#34;据我所知)

<span itemprop="price" content="1999"></span>

单元格A:http://www.adlibris.com/no/bok/banksy-in-new-york-9780990643715

单元格B:=IF(ISURL(A1); IMPORTXML(A1 ;"//span[@itemprop='price']/@content");"NULL")

= #N / A(代码适用于10个网址中的1个,其中&#34; span&#34;&#34;内容&#34;)

<span itemprop="price">1999</span>

单元格A:https://www.zalando.no/hagloefs-lava-50-sportsveske-h2744a00f-m11.html

单元格B:=IF(ISURL(A1); IMPORTXML(A1 ;"//span[@itemprop='price']");"NULL")

= 849kr(代码适用于某些带有&#34; span&#34;和&#34;内嵌文本&#34的URL;)

1 个答案:

答案 0 :(得分:0)

你实际上可以在那里添加2个简化xpath的变体,然后使用sort和trim只返回一个具有真实值的变体,如下所示:

=trim(sort(IMPORTXML(A1,"//*[@*='price']|//*[@*='price']/@content")))

enter image description here

另外,为了获得第二个xpath的价格,你可以使用它:

=trim(IMPORTXML(A2,"//*[contains(@itemprop,'price')]/@content"))