从R中的html文件中提取纯文本

时间:2018-07-11 23:50:30

标签: html r xml text

我正在从安全和交易委员会网站下载一个包含文本和html标签的文档。我正在尝试通过删除html标签来提取主要文本。

我的第一次尝试是使用XML包中的函数,并在output.htmltotext中显示转换结果。这种方法无法提取文档的正文。

library(XML) 
dir = getwd(); 

download.file("https://www.sec.gov/Archives/edgar/data/1000180/0000891618-06-000116.txt", file.path(dir,"filing.html"))

# attempt 1
doc.html = htmlTreeParse(file.path(dir,"filing.html"), useInternal = TRUE)
doc.text = unlist(xpathApply(doc.html, '//p', xmlValue))
output.htmltotext = as.data.frame(doc.text)

第二次尝试是让Mac系统使用textutil从html转换为txt。

# attempt 2
system(paste0('textutil -convert txt ',file.path(dir,"filing.html")))
output.macsystem <- read.table(file=file.path(dir, "filing.txt"),sep="\t", quote= "",comment.char="",stringsAsFactors=FALSE)

我发现这种方法非常准确,尽管非常耗时。转换单个文档可能需要1或2分钟,因为文件大小可以达到80-90 MB,并且我有成千上万个文档。我想知道是否有一个更优雅的解决方案(也许是从R调用Python并使用Beautiful Soup库?)。

任何帮助将不胜感激。

0 个答案:

没有答案
相关问题