2017-04-03 1 views
0

나는 노드 서버를 사용하여 agular2 응용 프로그램에서 일부 정보를 긁어 모으려고합니다. 문제는 내가 얻은 응답이 index.js 파일이라는 것입니다. 기본적으로 페이지의 "로드 중 ..."부분입니다.Angular2 사이트에 HTTP 요청 (스크래핑 목적으로)을 어떻게 만들 수 있습니까?

var rp = require("request-promise"); 

rp('https://someurl.com') 
    .then((html) => { 
     // Do something with the response 
    }) 
    .catch((err) => { 
     console.log(err); 
    }) 

을하지만 실제로로드 페이지를 기다릴 수있는 경우 나는 알아낼 수 없습니다 :

나는이 같은 고궁 박물원 요청 또는 요청 약속 패키지를 사용하고 있습니다. 아마도 Angular Universal을 사용하여 보았지만 데이터가 모두로드되고 사이트 소유자가 Universal을 사용하지 않으면 데이터를 가져와야합니다.

어쨌든이 작업을 수행 할 수 있습니까?

+0

HATEOAS 같은 통화에 대해 들었습니까? 앱이 Angular2를 기반으로한다는 가정하에 AJAX 호출 규칙/구문을 리버스 엔지니어링하고 AJAX 인수가 포함 된 URL을 직접 요구하여 json 형식의 데이터를 검색 할 수 있습니다. 그러나이 방법은 웹 사이트가 원하는 데이터를 향한 일종의 "프록시"일 경우에만 중요합니다. 웹 사이트에서 직접하는 일을 조건으로하는 데이터를 검색하려면 아래의 Dmytro Medvid에서 설명한대로 동적 인 웹 스크 레이 핑 기술을 사용해야합니다. – Kanak

답변

0

먼저 렌더링 된 페이지를 완전히 만들어야합니다. 유감스럽게도 JS 렌더링 된 웹 페이지는 렌더링 프로세스 없이는 도달 할 수 없지만 PhantomJS와 같은 "헤드리스"브라우저를 사용하여이 프로세스를 진행할 수 있습니다.

"헤드리스 브라우저는 그래픽 사용자가없는 웹 브라우저 인터페이스입니다. 머리없는 브라우저 나에 이동할 수 스위트 수있는 좋은 예를 발견 인기있는 웹 브라우저 "여기

에 환경에서 웹 페이지 의 자동 제어를 유사한 제공 : 또한 https://www.r-bloggers.com/web-scraping-javascript-rendered-sites/

을, 당신은 확인할 수 있습니다 Angularjs 구동 사이트 용 SEO에 대한이 기사에서는 "HTML 페이지 뱉기"에서 유용한 정보를 찾을 수 있습니다. https://www.yearofmoo.com/2012/11/angularjs-and-seo.html#sptting-out-the-html-pages

+0

고맙습니다. 잠시 전에 실제로 팬텀을 사용했습니다. 실제로 악몽 패키지 https://www.npmjs.com/package/nightmare – Notmfb

+0

을 사용하여 끝났습니다. 제 의견으로는 같은 것입니다. phantom.js와 유사하게 작동해야합니다. –