2013-12-12 2 views
18

웹 사이트에서 점수 표를 얻으려고합니다. 문제는 사이트가 명백하게 document.ready에로드되는 javascript를 사용하고 있다는 것입니다.cURL을 사용하여 JavaScript로로드되는 웹 콘텐츠를 얻는 방법은 무엇입니까?

나는 테이블을 얻는 데 성공하지 못했고, 그 페이지의 맨 위에있는 단추 만 있으면됩니다.

이 문제를 해결하는 방법에 대한 제안이나 아이디어가 있으십니까?

+0

당신이 file_get_contents을 시도인가를? – Hackerman

+0

시험 사용해보기 : http://stackoverflow.com/a/28506533/3063226 – Heitor

답변

15

cURL은 페이지의 마크 업만 가져옵니다. 추가 리소스를로드하거나 페이지를 처리하지 않습니다. 이 경우 PhantomJS과 같은 것을보고 싶을 것입니다. PhantomJS는 헤드리스 웹킷 브라우저입니다. 그것은 행동을 "스크립트"하게 해주는 자체 API를 가지고 있습니다. 따라서 PhantomJS에 페이지를로드하고 필요한 데이터를 덤프하도록 알릴 수 있습니다.

+0

답변 해 주셔서 감사합니다. 이것을 JavaScript로 실행 한 다음 exec 명령을 사용하여 PHP 변수에 덤프를 저장해야합니다. 그 맞습니까? – m33ts4k0z

+0

실제로는 할 필요가 없습니다. 명령 행에서 직접 실행할 수 있습니다. 그러나 이것을 웹 사이트에 표시하려면 PHP의'exec'를 사용할 수 있습니다. –

5

당신이하려는 정확히 무엇에 따라, 당신은 단지 테이블 만드는 JSON 데이터를 가져올 수 :

http://www.opap.gr/web/services/rs/betting/availableBetGames/sport/program/4100/0/sport-1.json?localeId=el_GR

+0

답변 해 주셔서 감사합니다. 나는 내 질문에 대한 답변으로 Vivins 대답을 표시 할 것이지만 당신도 역시 좋았다. json 전화를 어떻게 찾았나요? – m33ts4k0z

+1

@ m33ts4k0z : 문제 없습니다. Chrome 개발자 도구의 '네트워크'탭을 사용하여 찾았습니다 (다른 브라우저에서도 마찬가지입니다). 'document.ready'가 관련 되었기 때문에 아마도 페이지가 외부 적으로 정보를로드했을 것이라고 짐작했습니다. – Lasse

+0

@Lasse : 링크가 작동하지 않습니다. –

관련 문제