2011-01-31 5 views
0

javascript로 액세스되는 API를 통해 일부 내용을 생성하고 있으며, 브라우저에 일반 텍스트로 표시된 내용의 소스 코드를 가져올 수 없습니다. 텍스트를 강조 표시하고 선택한 텍스트 (파이어 폭스 기능)의 소스를 볼 수 있지만 CURL을 사용하여 자동으로 PHP로 데이터를 캡처합니다 ... 어떻게 데이터를 캡처 할 수 있습니까? DOM 업데이트를 통해 소스를 업데이트 할 수있는 방법이 있습니까? 어떤 도움을 주셔서 감사합니다.javascript에 의해 생성 된 내용을 자체 공개

+0

디버깅을하고 소스를 검사 할 수있는 도구가 많이 있습니다.이 도구는 사용하는 브라우저에 따라 달라집니다. –

+2

죄송합니다. 혼란스러운 질문입니다. 자바 스크립트를 사용하여 일부 콘텐츠를 생성하는 페이지가 있고 cURL을 통해 페이지를 가져올 때 동적으로 생성 된 콘텐츠를보고 싶습니까? – deceze

+0

예, 수동 디스플레이 기술은 내가 필요로하는 것이 아닙니다. 자바 스크립트 또는 jquery 솔루션이 필요합니다. – atwellpub

답변

2

당신은 그냥 HTML 소스를 요청하고 당신이 PHP의 내용을 얻으려면 있도록 JS를 실행하지 않고 장소에있을 JS와 수정의 결과를 기대할 수 없다, 당신은해야 할 것 중 하나

    는 자바 스크립트를 실행하는 것을 통해 HTML을 밀어
  1. (I 펄을 사용한다면 아마 WWW::Mechanize::Firefox에 보이는 것, 그것은 Mozrepl을 사용합니다. PHP 그것을 위해 유사한 좋은 API가 있는지 모르겠어요)
  2. 역 JavaScript를 처리하고 데이터를 직접 가져 오는 작업은 무엇이든하십시오.
0

개발자 도구 (오른쪽 상단의 공구 모양 -> 도구 -> 개발자 도구 또는 Ctrl + Shift + I (대문자 i))에서 Chrome을 사용하여 페이지 소스를 가져올 수 있습니다. 개발자 도구에 표시된 소스 코드는 페이지가 처음로드 된 후 JavaScript에 의해 동적으로 생성 된 것을 포함하여 페이지의 최신 소스 코드를 나타냅니다.

다른 브라우저에서도 비슷한 기능을 제공 할 것이라고 생각합니다. Chrome의 방법이 내 머리 꼭대기에 있다는 것을 알게되었습니다.

+0

브라우저를 사용하고 있으면 작동하지만 CLI는 어떻게됩니까? – Blender

+0

웹킷과 V8에서 필요한 비트와 조각을 포크하고 컴파일하십시오. 즉, JS를 지원하지 않는 것들에 대해 "사전 렌더링 된"폴백을 제공하는 것이 가장 쉬운 방법입니다. –

0

개발 환경이 Linux/Unix 인 경우 PjantonJS을 통합 할 수 있습니다.이 도구는 JavaScript를 실행하는 멋진 도구이며 출력을 전달합니다. 필자가 CLI PhantomJS를 실행하면 마녀의 shell_exec()과 함께하는 것이 좋습니다.

희망이 도움이됩니다.

+0

Windows에서도 작동해야합니다. 추가 할 수도 있습니다. –

관련 문제