我试图对以下网站中帖子的内容标题进行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">
我尝试了几乎所有我能想象的,但没有发现问题。我需要帮助!
提前谢谢
答案 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上方,标记h1
和p
并不是标记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示例可能是合适的。
//div[@id='hoofdartikelen']/h1[1]
//h1[1]
//a[@class ='article']/../h1[1]