我试图从以下html中检索"prace.avizo.cz"
和"onlineprodej.cz"
。我尝试了几种不同的变体来隔离那个网址但没有一个成功。
我试图通过googledoc中的importXML
函数获取它。我尝试过的一些途径是:
=importXML(B2,"//article[@class='genericlist component leadingReferers']//ul/li[1]")
=importXML(B2,"//ul[@class='sites items']//li[1]")
=importXML(B2,"//li[@class='item']//div//a")
这些要么不工作,要么返回额外的无关数据。我只是在查找此特定文章 class (genericlist component leadingReferers
)中的数据。
感谢任何帮助。
<article class="genericlist component leadingReferers">
<h2 class="title">
Top Publishers
<i class="tooltip sprite icon_tip_idle" title="&lt;h1&gt;Leading paid referring sites&lt;/h1&gt;Leading publishers referring advertising traffic to Cz.indeed.com"></i>
</h2>
<ul class="sites items">
<li class="item ">
<div class="text" title="prace.avizo.cz" data-sitename="prace.avizo.cz">
<a class="link" href="/website/prace.avizo.cz" data-tipsygravity="w" data-shorturl="Prace.avizo.cz">
<img class="icon lazy-icon lazy" data-original="http://images2.similargroup.com/image?url=prace.avizo.cz&t=2&s=1&h=11351681863127555753" src="/images/lazy.png"/>
<noscript>
<img class="icon" src="http://images2.similargroup.com/image?url=prace.avizo.cz&t=2&s=1&h=11351681863127555753"/>
</noscript>
Prace.avizo.cz
</a>
</div>
<div class="progress-bar">
<div class="progress-value percentage per1" style="width: 62.91%"></div>
</div>
</li>
<li class="item ">
<div class="text" title="onlineprodej.cz" data-sitename="onlineprodej.cz">
<a class="link" href="/website/onlineprodej.cz" data-tipsygravity="w" data-shorturl="Onlineprodej.cz">
<img class="icon lazy-icon lazy" data-original="http://images2.similargroup.com/image?url=onlineprodej.cz&t=2&s=1&h=14252445317786093368" src="/images/lazy.png"/>
<noscript>
<img class="icon" src="http://images2.similargroup.com/image?url=onlineprodej.cz&t=2&s=1&h=14252445317786093368"/>
</noscript>
Onlineprodej.cz
</a>
</div>
<div class="progress-bar">
<div class="progress-value percentage per1" style="width: 50.88%"></div>
</div>
</li>
....
答案 0 :(得分:1)
此表达式将为您提供文章中第一个项目的<a>
内的最后一个文本节点:
//article[@class='genericlist component leadingReferers']//li[1]//a/text()[last()]
包含文本Prace.avizo.cz
的文本(由空格,制表符和换行符包围)。如果您希望修剪这些额外的空格,您可以将该表达式作为参数传递给XPath函数normalize-space()
:
normalize-space( //article[@class='genericlist component leadingReferers']//li[1]//a/text()[last()] )
您可以以类似的方式选择第二篇文章(使用li[2]
表达相同的表达式):
//article[@class='genericlist component leadingReferers']//li[2]//a/text()[last()]
如果要检索包含所有文本节点的集合(可以在XPath之外进行操作),可以使用:
//article[@class='genericlist component leadingReferers']//li//a/text()[last()]
将返回包含所有文本节点的列表(在您的示例中为两个)。在这种情况下,您将不得不使用您的宿主语言来提取它们(可能在for-each循环中)。