0

我正在尝试解析抓取的 html 的(大)向量,更具体地说是 ,但向量中的某些页面中有两个,因此替换最终会得到比数据更多的行。我的问题:我如何只取每个 obs 中的第一个 //h2 ?

这是我尝试过的代码:

data$header = unlist(xpathSApply(htmlParse(data$html, asText=TRUE), '(//h2)[1]', xmlValue))

这只给了我第一个。这段代码给了我所有的h2:

data$header = xpathApply(htmlParse(philly$html, asText=TRUE), '//descendant::h2[1]', xmlValue)

任何帮助表示赞赏

样品有两个:

<div id="tutors">

 <h1>Tutors</h1>
<div class="tutor">
<h2>John</h2>
 <p>...</p>

<div class="tutor">
<h2>Mary</h2>
<p>...</p>
</div>

<div class="tutor">
<h2>David</h2>
<p>...</p>
</div>

</div>
4

1 回答 1

1

通过包含整个根路径来解决它:

data$header = unlist(xpathApply(htmlParse(data$html, asText=TRUE), '/html/body/h2', xmlValue))
于 2013-02-12T22:24:23.960 回答