2012-11-29 2 views
0

정상적인 브라우저 (크롬)로 이것을 수행하고 소스 코드를 보면이 모든 텍스트 (자바 스크립트가 아님)를 표시하면 요청을하고 동적 웹 사이트에서 응답을 받고 싶습니다.하지만 시도하면 wget 또는 HttpClient를 수행하십시오. javascript 및 텍스트가없는 응답을받습니다.javascript가 포함 된 HttpClient

텍스트는 동적이므로 최종 소스 코드 (텍스트 포함)를받는 방법은 무엇입니까?

, 명확하지 않은 경우 따르십시오이 단계 :

1 - http://www.stj.jus.br/webstj/processo/Justica/detalhe.asp?numreg=201201911000&pv=010000000000&tp=51

2로 이동 - 요소를 검사하고 detalhe.asp에서

3 소스 코드를 볼 수 - 오픈 터미널 및 wget과 사용 이 페이지를 얻으려면

지금은 차이점을 볼 수 있습니까?

---- 편집 ---- 도움, 나는 HttpClient를 사용하여이 작업을 수행하려고하는 경우 :

private static InputStream getPageSource(String url) { 
    InputStream inputStream = null; 
    try { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpResponse response = httpclient.execute(new HttpGet(url)); 
      StatusLine statusLine = response.getStatusLine(); 
      if(statusLine.getStatusCode() == HttpStatus.SC_OK){ 
       ByteArrayOutputStream out = new ByteArrayOutputStream(); 
       response.getEntity().writeTo(out); 
       out.close(); 
       String responseString = out.toString(); 
       //..more logic 
       System.out.println(responseString); 

       inputStream = response.getEntity().getContent(); 
      } else{ 
       //Closes the connection. 
       response.getEntity().getContent().close(); 
       throw new IOException(statusLine.getReasonPhrase()); 
      } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return inputStream; 
} 

---- 편집 2 ---- 나는이 작품이 하나를 넣어 만들어 가지고 머리글 필드 : Referer

httpclient : get.setHeader ("Referer", "http://www.stj.jus.br/webstj/processo/Justica/pagina_lista.asp" ; 모든 것이 작동합니다. 문제는 다음과 같습니다.

HttpClient에서이 매개 변수 (Referer)를 자동으로 가져 오는 방법은 무엇입니까?

+1

아니요 - 예상대로 리디렉션이 포함되어 있지만 두 가지 모두 동일한 응답을받습니다. 리디렉션을 따르지 않는 것은 무엇일까요? – GreyBeardedGeek

+0

wget에 어떤 명령을 사용합니까? – kavain

+0

파라미터가없는 스트레이트 업 wget (OS X 10.8.2) : "wget ​​http://www.stj.jus.br/webstj/processo/Justica/detalhe.asp?numreg=201201911000&pv=010000000000&tp=51" – GreyBeardedGeek

답변

0

Wget은 자바 스크립트를 해석하고 실행하지 않기 때문에 브라우저의 역할을 수행하지 않습니다. 단지 특정 URL에있는 리소스를 묻고 파일에 저장합니다. 콘텐츠를로드하려면 자바 스크립트 엔진에 액세스해야합니다. JavascriptExecutor 인터페이스가있는 Selenium을 사용하는 것이 좋습니다.

0

죄송합니다. 내 문제는 보안 문제입니다. 보안상의 이유로 참조자를 "http://www.stj.jus.br/webstj/processo/Justica/pagina_lista.asp"로 설정해야합니다. 리디렉션 또는 이와 유사한 보안 문제 만 있습니다.

이전에 내가 볼 수 없었기 때문에 질문을 게시합니다.

감사합니다.

0

나는 비슷한 문제를 연구 중이므로 계속 대답하려고하면 http://htmlunit.sourceforge.net/에 자바 스크립트 엔진이 임베드되어 있습니다. 환경에 따라 Selenium의 단점은 상호 작용하기 위해 브라우저가 설치되어야한다는 것입니다.

관련 문제