ImportXML返回空

时间:2019-08-14 19:30:11

标签: google-sheets-importxml

我试图对以下网站中帖子的内容标题进行Webscrap:https://www.hortidaily.com/sector/553/greenhouse/

使用Google表格Importxml函数。

所有帖子均以相同的格式撰写:

<a class="article" href="link1">
 <img src="img1.jpg" align="default" border="0" class="indexdefault">      
    <h1>Titre1</h1>
    <p>Texte1</p>
</a>

具有Xpath =的ImportXML函数:

-// a [@class ='article'] / @ href返回链接1:确定
-// a [@class ='article'] [1] / img / @ src返回img1:确定
-//即使XPath在chrome XPath Helper中运行,a [@class ='article'] [1] / h1仍返回#NA(导入的内容为空)...

尽管// h1 [1]返回第一篇文章的标题,但我不明白为什么// a [@class ='article'] [1] / h1无法正常工作,我想成为确保我得到的h1是第一个<a class="article" href="link1">

下的h1

我尝试了几乎所有我能想象的,但没有发现问题。我需要帮助!

提前谢谢

1 个答案:

答案 0 :(得分:0)

  • 您要在第一个h1中检索a[@class ='article']的值。
  • 您想知道为什么//a[@class ='article'][1]/h1返回#NA的原因。

如果我的理解正确,那么这个答案如何?

问题原因:

<div id="hoofdartikelen">

  <a class="article" href="link1">
    <img src="img1.jpg" align="default" border="0" class="indexdefault">
    <h1>Titre1</h1>
    <p>Texte1</p>
  </a>

</div>

在我的调查中,对于上述HTML数据,似乎是a的标签名称<a class="article" href="link1">的问题。例如,将标签名称修改为div时,可以确认=IMPORTXML(A1,"//div[@class ='article'][1]/h1")起作用。

而且,似乎在HTML上方,标记h1p并不是标记a的子代。因此,以下公式起作用。

=IMPORTXML(A1,"//div[@id='hoofdartikelen']/h1[1]")

=IMPORTXML(A1,"//div[@id='hoofdartikelen']/p[1]")

但是=IMPORTXML(A1,"//div[@id='hoofdartikelen']/img[1]/@src")不起作用。必须为=IMPORTXML(A1,"//div[@id='hoofdartikelen']/a[1]/img/@src")。因此,标记img似乎是a的子代。

xpath样本:

根据您的情况,根据以上结果,我认为以下xpath示例可能是合适的。

  • //div[@id='hoofdartikelen']/h1[1]
  • //h1[1]
  • //a[@class ='article']/../h1[1]

参考: