对于包含多个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中的
中获取有用的内容。
管道能做到吗?
谢谢。
答案 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相当新,但到目前为止它对我有用。