我有这个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(" .* ", "", .)
如果只有名字/姓氏,则代码会很好用。但是,如果存在中间名,一切都会陷入地狱。提取中间名的最佳方法是什么?
答案 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."