2017-04-17 2 views
1

Ich habe einige ähnliche Fragen gesehen, aber keine der Lösungen funktioniert für mich. Ich versuche, die URLs der Links von jedem der Knoten zu erhalten, aber die Liste ist nur Nullwerte.Empfangen von NAs beim Scrapfen von Links (href) mit RV

beer <- read_html("https://www.beeradvocate.com/lists/top/") 

beerLink <- beer %>% 
html_nodes(".hr_bottom_light a b") %>% 
html_attr('href') %>% 
as.data.frame() 

Jede Hilfe wäre willkommen.

Antwort

1

b ist ein Nachfolgerknoten, aber a enthält die gewünschten Verknüpfungen. Sie können für einige Nachkommen Muster suchen um (I mit xpath Versionen nur vertraut sind, und es scheint, dass Sie CSS bevorzugen), aber diese Alternative wird die Links wollen Sie ohne dass:

#using a stub to facilitate accessing the URLs later with 
# an absolute address 
stub = 'https://www.beeradvocate.com' 
beer <- read_html(paste0(stub, '/lists/top/')) 
lnx = beer %>% html_nodes('a') %>% html_attr('href') %>% 
    #this pattern matches beer profile links -- 
    # the first . is a brewery ID, the second . 
    # is a beer ID within that brewery 
    grep('profile/.*/.*/', ., value = TRUE) %>% 
    paste0(stub, .) 
head(lnx) 
# [1] "https://www.beeradvocate.com/beer/profile/23222/78820/" 
# [2] "https://www.beeradvocate.com/beer/profile/28743/136936/" 
# [3] "https://www.beeradvocate.com/beer/profile/28743/146770/" 
# [4] "https://www.beeradvocate.com/beer/profile/28743/87846/" 
# [5] "https://www.beeradvocate.com/beer/profile/863/21690/"  
# [6] "https://www.beeradvocate.com/beer/profile/17981/110635/" 

Auch ist Abraxas eine erstaunliche Bier und Santana Album

Verwandte Themen