Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 从url列表导入XML价格-每个源的语法不同_Html_Xml_Xpath_Import_Google Sheets - Fatal编程技术网

Html 从url列表导入XML价格-每个源的语法不同

Html 从url列表导入XML价格-每个源的语法不同,html,xml,xpath,import,google-sheets,Html,Xml,Xpath,Import,Google Sheets,我正在尝试对谷歌电子表格中的产品列表进行价格检查,这些产品来自不同的网络商店,并且使用了不止一种语法/语义。如果在元标记中提到了价格,那么摘录就可以了,如果是在span content或span inline中,它有时会起作用 问题1:我想帮助修复span提取代码,因为它们并不总是有效的,即使存在于html中 问题2:当提取被修复时,我想合并所有代码,这样如果其中一个不起作用,公式将测试下一个选项。有人能帮我吗?这样做是否可以减少获取价格所需的时间(因为现在一个包含250种产品的电子表格需要几个

我正在尝试对谷歌电子表格中的产品列表进行价格检查,这些产品来自不同的网络商店,并且使用了不止一种语法/语义。如果在元标记中提到了价格,那么摘录就可以了,如果是在span content或span inline中,它有时会起作用

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

问题2:当提取被修复时,我想合并所有代码,这样如果其中一个不起作用,公式将测试下一个选项。有人能帮我吗?这样做是否可以减少获取价格所需的时间(因为现在一个包含250种产品的电子表格需要几个小时)

如果还没有包括货币,提取货币并添加货币也会很有帮助

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

<meta itemprop="price" content="1999">
单元格A:
http://www.adlibris.com/no/bok/banksy-in-new-york-9780990643715

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

=#不适用(代码适用于10个带有“范围”和“内容”的URL中的1个)

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

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


=849kr(代码适用于某些带有“span”和“inline text”的URL)

实际上,您可以在其中添加两种简化xpath变体,然后使用sort和trim只返回其中包含实际值的URL,如下所示:

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

另外,要获得第二个xpath的价格,您可以使用以下方法:

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

实际上,您可以在其中添加简化xpath的两个变体,然后使用sort和trim只返回其中包含实值的xpath,如下所示:

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

另外,要获得第二个xpath的价格,您可以使用以下方法:

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