2017-09-04 4 views
0

httrXML을 사용하는 웹 사이트에서 정보를 긁어 모으는 방법을 배우고 있습니다. 몇 가지 테이블 만있는 웹 사이트에서는 정상적으로 작동하지만 이해할 수는 없습니다. 여러 표가있는 웹 사이트에 대해 https://www.pro-football-reference.com/boxscores/201609110atl.htmR : URL에 여러 테이블 스크랩하기

# To get just the boxscore by quarter, which is the first table: 
URL = "https://www.pro-football-reference.com/boxscores/201609080den.htm" 
URL = GET(URL) 
SnapTable = readHTMLTable(rawToChar(URL$content), stringAsFactors=F)[[1]] 

# Return the number of tables: 
AllTables = readHTMLTable(rawToChar(URL$content), stringAsFactors=F) 
length(AllTables) 
[1] 2 

그래서 내가 정보를 긁어 수 있어요,하지만 어떤 이유로 나는 단지에 20 개에서 상위 두 테이블을 캡처 할 수 있습니다 : 예를 들어 프로 축구 참조에서 다음 페이지를 사용하여 페이지. 연습을 위해 나는 "Starters"테이블과 "Officials"테이블을 얻으려고합니다.

다른 테이블을 웹 사이트의 설정이나 잘못된 코드의 문제로 사용할 수 있습니까?

답변

0

R의 웹 스크래핑과 관련하여 패키지를 집중적으로 사용합니다.

html을 얻는 것을 관리하는 것은 거의 괜찮습니다. - rvest는 CSS 선택기를 사용합니다. SelectorGadget은 특정 테이블에 대한 스타일 지정 패턴을 찾는 데 도움이됩니다. 따라서 우연의 일치 대신 찾고있는 테이블을 정확하게 추출 할 수 있습니다.

시작하려면 - 자세한 정보는 rvest의 비 네트를 읽으십시오.

#install.packages("rvest") 
library(rvest) 
library(magrittr) 

# Store web url 
fb_url = "https://www.pro-football-reference.com/boxscores/201609080den.htm" 

linescore = fb_url %>% 
    read_html() %>% 
    html_node(xpath = '//*[@id="content"]/div[3]/table') %>% 
    html_table() 

희망이 도움이됩니다.