2012-03-19 2 views
1

웹 페이지의 소스 코드를 다운로드하려면 R을 사용해야합니다.R을 사용하여 웹 페이지 소스 코드를 보는 방법?

Firefox에서 "소스 코드보기"를 클릭하면 모든 소스 코드가 표시됩니다. 그러나 RCurl을 사용하여 소스 코드를 다운로드하면 일부만 볼 수 있습니다. 누락 된 부분은 Javascript에 의해 생성되므로 문제가 될 수 있습니다. RCurl에서 자바 스크립트로 생성 된 정보를 볼 수 없습니까?

어떻게 소스 코드를 R로 가져올 수 있습니까? RCurl을 통해 시도했거나 txt 파일에있는 것처럼 R에로드 된 파일은 정상적으로 작동합니다.

감사

답변

0

RCurl 바로 전송의 HTTP 부분이 처리; 페이지에 코드를 실행하는 Javascript 인터프리터가 없습니다 (추가 HTML을 다운로드하거나 직접 작성할 수 있음). URL을 다운로드하고 함께 제공되는 Javascript를 실행 한 다음 그 결과를 파일에 저장할 수있는 명령 줄 프로그램을 찾아야합니다. 이 프로그램은 system()을 사용하여 호출 할 수 있습니다.

+0

덕분에 그럴 수있는 명령 줄 프로그램에 대한 제안이 있으십니까? – user1107035

+0

죄송합니다. 그런 프로그램을 사용 해본 경험이 없습니다. 파이어 폭스에게 해줄 수 있을지도 모른다고 생각했지만 빠른 검색에서 아무 것도 볼 수 없었습니다. –

2

elinks 텍스트 브라우저에 javascript가 일부 지원됩니다. 이 지원을 구성/향상하는 방법은 문서를 참조하십시오.

elinks -dump www.google.com 

은 렌더링 된 버전의 사이트를 제공합니다.

더 나은 옵션은 mozrepl입니다.

telnet localhost 4242 
repl> var w=window.open("https://google.com") 
repl> w.document.getElementsByTagName('html')[0].innerHTML 

당신에게 페이지를 제공해야합니다 : 그것은 파이어 폭스에 당신이 웹 페이지의 자바 스크립트에서 할 수있는 당신이 무엇을 할 수있는 명령 프롬프트에서 연결합니다.

mz <- socketConnection("localhost", "4242") 
writeLines("var w=window.open(\"https://google.com\")\n",mz) 
out <- readLines(mz) #empty the buffer 
writeLines("w.document.getElementsByTagName('html')[0].innerHTML\n", mz) 
out <- readLines(mz) 
str(out) 

가 제공해야합니다 :

chr [1:73] "repl> repl> \"<head><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"><meta itemprop=\"image\" content=\"/"| __truncated__ ... 

당신이 필요로하는 것을 위해 필터를 촉진 할 수

문제는 R이 작동하도록하는 방법입니다.

관련 문제