使用R从网页提取中间名

时间:2019-04-01 19:36:49

标签: r rvest

我有这个book's Google webpage-作者是Glenn M. Wong,就在主标题下。

我想使用典型的rvest方法提取中间名。例如,仅获取姓氏:

last_name <- url %>% 
  html_nodes('#bookinfo div:nth-child(1) span') %>% 
  html_text %>% 
  sub(".* ", "", .)

然后是名字:

first_name <- url %>% 
  html_nodes('#bookinfo div:nth-child(1) span') %>% 
  html_text %>% 
  sub(" .*", "", .)

如何获取中间名?在这种情况下,这只是最初的名称,但是在全名的情况下,我想要整个内容。这不起作用:

sub(" .* ", "", .)

如果只有名字/姓氏,则代码会很好用。但是,如果存在中间名,一切都会陷入地狱。提取中间名的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用

sub("^[^\\s]+\\s(.*)\\s.*$", "\\1", .)

完整代码

url <- "https://books.google.de/books?id=qEELS7T_Tm0C&dq=NHL+teams&source=gbs_navlinks_s&redir_esc=y"

library(rvest)
url %>% 
  read_html() %>% 
  html_nodes('#bookinfo div:nth-child(1) span') %>% 
  html_text() %>% 
  sub("^[^\\s]+\\s(.*)\\s.*", "\\1", .)
# [1] "M."