在R中使用XML在html中提取数据时提取“样式”信息
我使用下面的脚本尝试从PDF转换的HTML文件中提取数据在R中使用XML在html中提取数据时提取“样式”信息,xml,r,web-scraping,Xml,R,Web Scraping,我使用下面的脚本尝试从PDF转换的HTML文件中提取数据 temp.html <- scan(file=filename,what="character") pagetree <- htmlTreeParse(temp.html, error=function(...){}, useInternalNodes = TRUE) tx.raw <- getNodeSet(pagetree,"//div") 我需要的信息在span即971.72中,但我还需要在div中设置样式,以便
temp.html <- scan(file=filename,what="character")
pagetree <- htmlTreeParse(temp.html, error=function(...){}, useInternalNodes = TRUE)
tx.raw <- getNodeSet(pagetree,"//div")
我需要的信息在span即971.72中,但我还需要在div中设置样式,以便让我知道span中的数据在pdf文件中的确切位置。如何也提取样式信息?谢谢。我会用一个简单的regexp: 其中t将相应的HTML部分保存为文本 基于演示HTML部分的冗长示例:
## loading your demo HTML part to one line
t <- paste(readLines(textConnection('<div style="position:absolute;top:985;left:748">
<nobr>
<span class="ft03">
971.72
</span>
</nobr>
</div>')), collapse = '')
## let us extract some parts!
library(XML)
t.html <- htmlTreeParse(t, useInternalNodes = TRUE)
t.val <- xpathApply(t.html, '//div', xmlValue)
t.val <- gsub('\\s', '', t.val)
t.style <- sub('.*style="([0-9a-z;:]*)".*', '\\1', t)
提取top和left可以类似地处理,我只是没有处理它,因为我不确定left和top是否是静态字符串
sub('.*style="([0-9a-z;:]*)".*', '\\1', t)
## loading your demo HTML part to one line
t <- paste(readLines(textConnection('<div style="position:absolute;top:985;left:748">
<nobr>
<span class="ft03">
971.72
</span>
</nobr>
</div>')), collapse = '')
## let us extract some parts!
library(XML)
t.html <- htmlTreeParse(t, useInternalNodes = TRUE)
t.val <- xpathApply(t.html, '//div', xmlValue)
t.val <- gsub('\\s', '', t.val)
t.style <- sub('.*style="([0-9a-z;:]*)".*', '\\1', t)
> t.val
[1] "971.72"
> t.style
[1] "position:absolute;top:985;left:748"