Yahoo Pipe:如何解析子DIV

时间:2011-05-11 18:07:56

标签: yahoo-pipes

对于包含多个DIV的页面,如何从包含有用文本的DIV中获取内容,并避免使用其他用于广告的DIV等。

例如,像这样的页面结构:

...

<div id="articlecopy">

  <div class="advertising 1">Ads I do not want to fetch.</div>

  <p>Useful texts go here</p>

  <div class="advertising 2">Ads I do not want to fetch.</div>

  <div class="related_articles_list">I do not want to read related articles so parse this part too</div>

</div>

...

在这个虚构的例子中,我想摆脱广告的两个DIV和相关文章的DIV。我想要的只是在父DIV中的

中获取有用的内容。

管道能做到吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用xpath的YQL模块。这些方面的东西:

SELECT * from html where url="http://MyWebPageWithAds.com" and xpath='//div/p'

以上查询将检索&lt; p&gt;内部的html部分。父级&lt; div&gt;下的标记标签。如果您的DIV具有属性,您可以使用xpath。

例如,假设您有一个包含多个DIV的页面,但您想要的页面如下所示:

<div>
    <div>Stuff I don't want</div>
    <div class="main_content">Stuff I want to add to my feed</div>
    <div>Other stuff I don't want</div> 
</div>

您可以将上面的YQL字符串更改为:

SELECT * from html where url="http://MyWebPageWithAds.com" 
and xpath='//div/div[contains(@class,"main_content")]'

我自己最近才发现YQL,并且使用xpaths相当新,但到目前为止它对我有用。