幻影<;span>;元素在Google电子表格中使用ImportXML和XPath
我正在尝试使用XPath从Google电子表格中的via importXML获取元素属性的值 我搜索的属性值是幻影<;span>;元素在Google电子表格中使用ImportXML和XPath,xpath,google-sheets,html,Xpath,Google Sheets,Html,我正在尝试使用XPath从Google电子表格中的via importXML获取元素属性的值 我搜索的属性值是content,可以在中找到itemprop=“price” Pretul tau: 698,31 ... 我可以访问,但无法访问元素 尝试使用: //span[@class='pret']/@content我得不到 //span[@itemprop='price']/@content我得不到 //div[@class='left']/span[@class='pret'和@ite
content
,可以在
中找到itemprop=“price”
Pretul tau:
698,31
...
我可以访问
,但无法访问
元素
尝试使用:
我得不到李>//span[@class='pret']/@content
我得不到李>//span[@itemprop='price']/@content
我得不到李>//div[@class='left']/span[@class='pret'和@itemprop='price']/@content
我得不到李>//div[@class='left']/span[1]/@content
获取//div[@class='left']/span/text()
的文本节点i get 35; N/A李>//div[@class='left']
//
我在span/text()
的下方得到了div.left
的文本节点
的文本节点,我必须使用//div[@class='left']/text()
。但我不能使用该文本节点,因为如果产品在销售中,跨度的布局会发生变化,所以我需要该属性
这就像我正在寻找的span不存在一样,尽管它出现在Chrome的development视图中,出现在页面源代码中,并且所有XPath都在控制台中使用$x(“”
)
我试图通过右键单击直接从开发工具生成XPath,结果得到了不起作用的/*[@id='produs']/div[4]/div[4]/div[1]/span
。我还尝试使用Firefox和FF和Chrome插件生成XPath,但没有成功。以这些方式生成的XPath在我用“手工编码的XPath”勉强拼凑的站点上甚至不起作用
现在,最奇怪的是,在这个代码结构明显相似的地方,XPath//span[@itemprop='price']/@content
可以工作。
我为此挣扎了4天。我开始认为这与自动关闭元标记有关,但为什么在其他网站上不发生这种情况?也许以下公式可以帮助您:
=ImportXML("http://...","//div[@class='product-info-price']//div[@class='left']/text()")
或
更新
似乎没有正确解析整个文档,它就失败了。文档提取,类似于:
Pretul tau:
698,31
拉塔德拉塔28,18罗恩普林
Pretul include TVA
鳕鱼产品:GA-Z87X-UD3H
使用以下XPath查询:
"//div[@class='product-info-price']//div[@class='left']//span[@itemprop='price']/@content"
更新
我想到了一个选项,您可以使用它来创建自己的ImportXML函数,例如:
/*用于演示的代码*/
函数MyImportXML(url){
找到变量,html,内容=“”;
var response=UrlFetchApp.fetch(url);
如果(答复){
html=response.getContentText();
如果(html)content=html.match(//gi)[0].match(/content=“(.*)”/i)[1];
}
返回内容;
}
然后您可以按如下方式使用:
=MyImportXML("http://...")
也许以下公式可以帮助您:
=ImportXML("http://...","//div[@class='product-info-price']//div[@class='left']/text()")
或
更新
似乎没有正确解析整个文档,它就失败了。文档提取,类似于:
Pretul tau:
698,31
拉塔德拉塔28,18罗恩普林
Pretul include TVA
鳕鱼产品:GA-Z87X-UD3H
使用以下XPath查询:
"//div[@class='product-info-price']//div[@class='left']//span[@itemprop='price']/@content"
更新
我想到了一个选项,您可以使用它来创建自己的ImportXML函数,例如:
/*用于演示的代码*/
函数MyImportXML(url){
找到变量,html,内容=“”;
var response=UrlFetchApp.fetch(url);
如果(答复){
html=response.getContentText();
如果(html)content=html.match(//gi)[0].match(/content=“(.*)”/i)[1];
}
返回内容;
}
然后您可以按如下方式使用:
=MyImportXML("http://...")
也许以下公式可以帮助您:
=ImportXML("http://...","//div[@class='product-info-price']//div[@class='left']/text()")
或
更新
似乎没有正确解析整个文档,它就失败了。文档提取,类似于:
Pretul tau:
698,31
拉塔德拉塔28,18罗恩普林
Pretul include TVA
鳕鱼产品:GA-Z87X-UD3H
使用以下XPath查询:
"//div[@class='product-info-price']//div[@class='left']//span[@itemprop='price']/@content"
更新
我想到了一个选项,您可以使用它来创建自己的ImportXML函数,例如:
/*用于演示的代码*/
函数MyImportXML(url){
找到变量,html,内容=“”;
var response=UrlFetchApp.fetch(url);
如果(响应)
<meta itemprop="currency" content="RON">
<meta itemprop="priceCurrency" content="RON" />