2017-04-27 1 views
1

를 여러 테이블을 긁는 것은 내가이 URL을 긁어 싶습니다 https://prog.nfz.gov.pl/app-jgp/GrupaSzczegoly.aspx?id=2AfRAM1JYDoYzktSMvdOhFiPm2Fnh67qrvest : 위의 제목

그것은 각 지역에서 의료 절차의 통계를 나열하고 HTML이 구조가 있습니다 제목과 해당 테이블, 모든 16 번 국가의 지역. 간단한 HTML에서

: 나는 (내가 할 수 있다면 괜찮을 것) 나는 단지 그들로부터 하나 개 또는 두 개의 값을 필요로하는 전체 테이블을 긁어 할 필요가 없습니다

<div class="tytul">01 - NameOfDistrict_01</div> 

<table> 
... 
<tr>   
<td class="lewa">No. of procedures</td>   
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">950</span> 
</td> 
... 
</table> 


<div class="tytul">02 - NameOfDistrict_02</div> 
<table> 
<tr>   
... 
<tr>   
<td class="lewa">No. of procedures</td>   
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">350</span> 
</td> 
... 
</td> 
</table> 


<div class="tytul">nn - NameOfDistrict_nn</div> 
<table> 
... 
<tr>   
<td class="lewa">No. of procedures</td>   
<td class="prawa"><span id="ContentPlaceHolder1_lblbw">850</span> 
</td> 
... 
</table> 

은 그래서 선택기 가젯으로보고 시도 페이지를 검사하십시오. 내가 관심이있는 값 중 하나는 노드에있는 프로 시저의 수입니다. # ContentPlaceHolder1_lblbw이며 제목이 앞에 .tytul 클래스가옵니다.

mydata <- read_html(....) %>% html_nodes(name, "#ContentPlaceHolder1_lblbw") %>% 
    html_text() 

그러나이 자리 표시자는 각 영역에 대해 반복됩니다. 그런 다음 테이블 위의 제목 뒤에 첫 번째 자리 표시자를 읽어야합니다. 그리고 각 제목과 그 뒤에 나오는 표를 기록하십시오.

어떻게이 당신을 위해 무엇을 찾고있는 않는 생각 dataframe

District   No. of procedures 
    NameOfDistrict_01 950 
    NameOfDistrict_02 350 
............................ 
    NameOfDistrict_nn 850 

답변

4

에 같은 테이블을 긁어.

library(rvest) 
page <- read_html("https://prog.nfz.gov.pl/app-jgp/GrupaSzczegoly.aspx?id=2AfRAM1JYDoYzktSMvdOhFiPm2Fnh67q",encoding=-"utf-8") 
data <- page %>% html_nodes(xpath='//*[@id="ContentPlaceHolder1_lblbp"]') %>% html_text() 
titles <- page %>% html_nodes(xpath='//*[@class="tytul"]') %>% html_text() 

myData <- data.frame(title=titles,data=as.numeric(data)) 

head(myData) 
        title data 
1  01 - DOLNOSLASKI 919 
2 02 - KUJAWSKO-POMORSKI 984 
3   03 - LUBELSKI 1476 
4   04 - LUBUSKI 255 
5   05 - LÓDZKI 1225 
6  06 - MALOPOLSKI 1780 
+0

간단합니까? 나는 루프가 필요하다고 생각했다. 매우 감사합니다. –