프론트 페이지를 크롤링 JS를 얻을 수

1, 문제가있는 것입니다

동일 출처 정책 (동일 출처 정책)

자바 스크립트는 페이지를 읽을 도메인 페이지에 액세스 할 수 있습니다. 자바 스크립트가 자신의 도메인과는 아무 상관이없는 사이트 및 관련 문서에 포함 된 전용 도메인 자바 스크립트 코드를 정의, 주목해야한다. 다음 샘플 코드 :

<! DOCTYPE HTML > 
< HTML LANG = "EN" > 
< 머리 > 
    < 메타 문자 집합 = "UTF-8" > 
    < 제목 > 8000 : // localhost를 :이 웹 페이지는 HTTP에서 온 것입니다 </ 제목 > 
  < 스크립트 SRC / "= /ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js " > </ 스크립트 > 
</ 헤드 > 
< 본문 > 
  < DIV ID ="테스트 " > 123 <
  스크립트 유형 = "텍스트 / 자바 스크립트" > 
    을 console.log ($ ( ' #test ' )는 .text ());
  </ 스크립트 > 
</ > 
</ HTML >

에서 HTML 문서는 제공 http://localhost:8000이 도메인의 의미, http://localhost:8000페이지가 JQuery와로드 있지만 (도메인과 포트도 관련이있는), ajax.googleapis.com액세스 할 수있는, 단, JQuery와 도메인과 그 도메인이 HTML 문서에 대한 위치 속성 HTML 문서는 위의 코드가 제대로 실행되도록.
부록 : 이유 코드를 사용하여 보편적 개발자 자바 스크립트 라이브러리 (예를 들어, JQuery와) 같은 URL에서 공개 주소입니다. 사용자로드는 JS하면, 미래는 페이지 로딩 속도를 빠르게하기 위해 브라우저 캐시를로드 할 때.

이러한 관점에서, 질문자에 알고있는 경우 远端다음 원하는 기능을 달성 할 수없는, 인터넷에서 모든 페이지를 참조, 경우에 远端당신이 사이트를 통해 제어 할 수 있습니다 질문자를 의미하여 편안한 다음을 참조 동일 출처 정책;

동일 출처 정책을 휴식

  1. document.domain을 : 하위 도메인에 대한 상황. (복수의 iframe을 페이지)의 복수의 윈도우, 같은 필드 값, 같은 이국적인 자바 스크립트 액세스 창을 document.domain을 설정하여;
  2. 크로스 원산지 자원 공유 : 액세스-Control 키는 서버에서 머리를 돌려 증가

허용 - 원산지는, 머리가 도메인에 대한 모든 허용 된 액세스 목록이 포함되어 있습니다. 지원되는 브라우저는 자바 스크립트이 페이지 이러한 필드에 액세스 할 수 있습니다;

  1. 크로스 문서 메시징 : 현장 독립적 인 방식으로, 자바 스크립트, 서로 다른 문서는 제한없이 수락 메시지를 보냈지 만 적극적으로 관심을 다른 문서의 속성과 메소드 호출을 읽는하지 될 수

질문자가있는 경우 远端페이지를 제어 할, 당신은 두 번째 방법을 시도 할 수 있습니다.

서버 측 잡아

질문자의 요구에 따라, 더 실행 가능한 옵션은 서버 측에서 처리되어야합니다. 와 ( http://phantomjs.org/ ), 서버 측의 자바 스크립트 구문 DOM 조작을 사용할 수 있습니다, 당신은 추가 분석을 nodejs 사용할 수 있습니다, 물론, 당신은 또한 파이썬, PHP, Java 언어 후속 작업을 사용할 수 있습니다 .

 

 

결론 :

(1) 서버 오픈 크로스 도메인 페이지를 제한합니다;

(2) 서비스의 끝은 페이지를 요청

추천

출처www.cnblogs.com/mengfangui/p/11543411.html