使用xpathapply仅获取webscrapes向量中每行的第一个h2节点
我试图解析一个(大的)刮取的html向量,更具体地说是,但是向量中的一些页面中有两个,因此替换结果是行数多于数据。我的问题:如何在每个obs中只取第一个//h2 这是我尝试的代码:使用xpathapply仅获取webscrapes向量中每行的第一个h2节点,r,xpath,web-scraping,sapply,R,Xpath,Web Scraping,Sapply,我试图解析一个(大的)刮取的html向量,更具体地说是,但是向量中的一些页面中有两个,因此替换结果是行数多于数据。我的问题:如何在每个obs中只取第一个//h2 这是我尝试的代码: data$header = unlist(xpathSApply(htmlParse(data$html, asText=TRUE), '(//h2)[1]', xmlValue)) 这只给了我第一次机会。该代码为我提供了所有h2s: data$header = xpathApply(htmlParse(phill
data$header = unlist(xpathSApply(htmlParse(data$html, asText=TRUE), '(//h2)[1]', xmlValue))
这只给了我第一次机会。该代码为我提供了所有h2s:
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>
导师
约翰
玛丽
大卫
通过包含整个根路径解决了此问题:
data$header = unlist(xpathApply(htmlParse(data$html, asText=TRUE), '/html/body/h2', xmlValue))
data$header = unlist(xpathApply(htmlParse(data$html, asText=TRUE), '/html/body/h2', xmlValue))