0

我有一个 URL 列表,并提取了如下内容:

library(httr)
link="http://www.workerspower.net/disposable-workers-the-real-price-of-sweat-shop-labor"
get.link=GET(link)
get.content=content(x2,as="text")
extract.content=str_extract_all(y2,"<p>(.*?)</p>")

这给出了一个带有文本的“1 列表”。每个列表的长度取决于/随 URL 而变化。我想将 URL [链接] 与内容 [extract.content] 绑定并将其转换为数据框,然后将其导入语料库。我的尝试失败了,例如。由于行长不同,这不起作用:

all=data.frame(url.vec=c(link1,link2),text.vec=c(extract.content1,extract.content2))

有谁知道如何将字符 [向量] 与字符 [列表] 结合起来?

4

1 回答 1

3

我会使用XML包来做到这一点。那么你应该避免在 html/xml 文档中使用正则表达式。改为使用xpath。在这里,我创建了一个小函数,它提供了一个链接,它创建了语料库。

library(XML)
create.corpus <- function(link){
  doc <- htmlParse(link)
  parag <- xpathSApply(doc,'//p',xmlValue)
  library(tm)
  cc <- Corpus(VectorSource(parag))
  meta(cc,type='corpus','link') <- link
  cc
}
## call it 
cc <- create.corpus(link)

检查结果:

 meta(cc,type='corpus')
# $create_date
# [1] "2014-01-03 17:40:50 GMT"
# 
# $creator
# [1] ""
# 
# $link
# [1] "http://www.workerspower.net/disposable-workers-the-real-price-of-sweat-shop-labor"

> cc
# A corpus with 36 text documents
于 2014-01-03T17:41:43.063 回答