2014-11-03 2 views
0

안녕하세요. 여기에 내 첫 번째 질문입니다. 모든 사람이 내 문제에 대한 해결책을 갖고 있는지 궁금 해서요. 모든 것이로드 된 후 웹 페이지의 전체 콘텐츠를 얻으려고합니다. . 예를 들어 나는 웹 페이지가로드 된 후 정보를 가져 오는 웹 사이트를 가지고 있으므로 서버에서 데이터를 요청하기 위해 ajax를 사용하는 검색 페이지처럼로드됩니다. 내가 얻을 코드를 실행할 때 웹 페이지의 기본 셸과 검색 결과에서 아무 것도 없습니다.Java BufferedReader가 웹 페이지의 전체 내용을로드하지 않습니다.

URL url = new URL("a_url"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
    String inputLine; 
    while ((inputLine = in.readLine()) != null) 
     System.out.println(inputLine); 

    in.close(); 

내가 자바 자석 다운로드의 사용을 테스트 이대로, 급류에 대한 해적 베이를 검색하고 그리고 난 급류의 자석 링크를 수집하기 위해 시도하고 이름 때 "inputLine는"아무것도 인쇄되지 않습니다 나는 수색이 추가되기 전에 웹 사이트가 구성하는 것만을 검색했다. 어떤 도움이라도 대단히 감사 할 것입니다.

+0

로드하려는 것은 페이지의 원본입니다. 자바 스크립트를 통해 페이지가로드 된 후 콘텐츠가로드되는 경우 콘텐츠는 해당 입력 스트림에 존재하지 않습니다. – thatidiotguy

+0

그래, 내가하고있는 일을 이해하고있다 나는 데이터를 출력하기 위해 스트림으로 돌아 오기 전에 다른 데이터가로드 될 때까지 기다릴 수있는 솔루션을 원했다. –

답변

1

조각으로 서버에 페이지를 요청하고 sysout에 표시하고 있습니다.

페이지가로드 된 후 가져온 모든 콘텐츠는 일부 자바 스크립트에서 요청합니다. 자바 스크립트는 웹 브라우저에 의해 해석됩니다. 동일한 결과를 원하면 브라우저와 마찬가지로 javascript를 해석해야합니다. 나는 jsoup가 그런 기능을 가지고 있다고 생각한다.

기타 해결책 : 자바 스크립트가 HTTP API를 통해 서버에 액세스하고 있습니다. 기본 페이지를 요청하지 않고 Java 코드에서 일부 API에 액세스하십시오.

+0

무슨 일이 일어나는 지 알지만 내가 말했듯이 솔루션을 찾고 다른 솔루션으로 나는 콘텐츠가 PHP에 의해 구동되는지 확인하려면 웹 페이지에 메서드를 시도했지만 동일한 결과가 발생하므로 내가 자바 스크립트라고 가정하면 어떻게됩니까? HttpUrlConnection 클래스가 도움이된다면 JSoup 아이디어에 대해 살펴 보겠습니다. –