2017-10-27 3 views
0

안녕하세요, 저는 패키지 rvest를 사용하여 R 언어로 긁어 모으는 웹을 통해이 웹 페이지에 대한 정보를 거의 얻으려고합니다. 나는 이름과 모든 것을 얻고 있지만 전자 메일 ID 즉 [email protected]을 얻을 수 없습니다. read_html을 텍스트로 볼 경우 전자 메일 ID가 HTML 구문 분석 텍스트로 표시되지 않습니다. 아무도 도와 줄 수 있니? 나는 웹 근근이 살아가고 있습니다. 그러나 나는 R 언어를 알고 있습니다.rvest를 통해 웹을 긁어 모으는 이메일 주소 받기

link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/' 
page <- read_html(link) 
name_html <- html_nodes(page,'.placeHeading') 
business_adr <- html_text(adr_html) 
tel_html <- html_nodes(page,'.value') 
business_tel <- html_text(tel_html) 

이메일 ID는 'a'HTML 태그이지만 추출 할 수 없습니다. This is the page source code

+1

그것은 동적으로 JS에 의해 만들어진 때문입니다. 페이지 소스를 확인하십시오. – amrrs

+1

그것이 도움이된다면 듣고 싶습니다! – amrrs

답변

5

여기 js 코드를 처리하려면 자바 스크립트 엔진이 필요합니다. 다행히도 R은 V8입니다.

V8 패키지를 설치 한 후 코드를 수정 :

library(rvest) 
library(V8) 

link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/' 
page <- read_html(link) 
name_html <- html_nodes(page,'.placeHeading') 
business_adr <- html_text(adr_html) 
tel_html <- html_nodes(page,'.value') 
business_tel <- html_text(tel_html) 

emailjs <- page %>% html_nodes('li') %>% html_nodes('script') %>% html_text() 
ct <- v8() 

read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text() 

는 출력 :

> read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text() 
[1] "[email protected]" 
+0

ct에 오류가 발생했습니다. read_html (ct $ eval (gsub ("document.write", "", emailjs))의 오류 : 개체 'ct'을 (를) 찾을 수 없음 – tanee

+0

내 잘못 했어. 업데이트 된 답변을'''ct <- v8()''' – amrrs

+0

으로 확인하십시오. 예. 많은 감사. – tanee