我试图从网站中提取所有以特定短语开头的单词。我使用的网站是:
http://docs.ggplot2.org/current/
我想提取所有以" stat _"开头的单词。我应该得到21个名字,如" stat_identity"作为回报。我有以下代码:
stats <- readLines("http://docs.ggplot2.org/current/")
head(stats)
grep("stat_{1[a-z]", stats, value=TRUE)
我返回包含短语&#34; stat _&#34;的每一行。我只想提取&#34; stat _&#34;话。所以我尝试了别的东西:
gsub("\b^stat_[a-z]+ ", "", stats)
我认为我得到的输出是一个空字符串,&#34; &#34;,其中a&#34; stat _&#34;短语会是什么?所以现在我试着想办法提取所有文本并设置 not a&#34; stat _&#34;空字符串的短语。有没有人对如何获得我想要的输出有任何想法?
答案 0 :(得分:4)
rvest
&amp; stringr
救援:
library(xml2)
library(rvest)
library(stringr)
pg <- read_html("http://docs.ggplot2.org/current/")
unique(str_match_all(html_text(html_nodes(pg, "body")),
"(stat_[[:alnum:]_]+)")[[1]][,2])
## [1] "stat_bin" "stat_bin2dCount"
## [3] "stat_bindot" "stat_binhexBin"
## [5] "stat_boxplot" "stat_contour"
## [7] "stat_density" "stat_density2d"
## [9] "stat_ecdf" "stat_functionSuperimpose"
## [11] "stat_identity" "stat_qqCalculation"
## [13] "stat_quantile" "stat_smooth"
## [15] "stat_spokeConvert" "stat_sum"
## [17] "stat_summarySummarise" "stat_summary_hexApply"
## [19] "stat_summary2dApply" "stat_uniqueRemove"
## [21] "stat_ydensity" "stat_defaults"
除非您需要链接(然后您可以使用其他rvest
功能),否则会删除所有标记,并为您提供网站文本。