我为此做了很多尝试,现在必须转向您。我在这里看到了相关的帖子,但没有帮助。我为为什么无法获得一份清单而感到烦恼,清单似乎出现在Instruments:
一词之后!
library(RCurl);library(XML);library(rvest);library(dplyr);library(stringr)
A<-"https://www.google.com/search?q=lester+young&oq=lester+young&aqs=chrome..69i57j69i60l2j0l3.1767j1j4&sourceid=chrome&ie=UTF-8"
result<-A %>%
read_html()%>%
html_nodes(xpath="//span")%>%html_text()
# Parse `result` with regex
instruments<-str_extract(result,"(.*Instruments:\n.*)")
instruments
dob<-str_extract(result,".*(Born: \n.*)")
dob
“结果”如下所示:
[38]“莱斯特·威利斯·扬(Lester Willis Young),绰号“普雷斯”或“普雷斯”,是美国爵士男高音萨克斯管演奏家和不定期的单簧管演奏家。他乐器上最有影响力的演奏家。维基百科”
[39]“出生:”
[40]“ 1909年8月27日,密西西比州伍德维尔”
[41]“死于:”
[42]“ 1959年3月15日,纽约州纽约市”
[43]“昵称:”
[44]“ Prez”
[45]“乐器:”
[46]“单簧管萨克斯风,单簧管”
虽然可以在该网页上使用instruments<-result[46]
,但是HTML抓取会在不同的行上针对不同的搜索产生工具和dob信息。
最终,我想在instruments
对象中看到“钢琴”,并在dob
对象中看到出生日期。
谢谢...
答案 0 :(得分:1)
这对我有用。获取“仪器:”的索引,然后打印下一个条目。当然,如果页面格式更改,则可能不起作用。
> i <- as.integer(grep("Instruments:",result))
> print(result[i+1])
[1] "Tenor saxophone, clarinet"
或者这个:
> result_all <- paste(result,collapse="\n")
> str_extract(result_all,"(Instruments:.*\\n.*)")
[1] "Instruments: \nTenor saxophone, clarinet"