2012-06-27 5 views
0

크롤러 4j를 사용하여 Tripadvisor의 크롤러를 작성하고 있습니다. 항목에 대한 모든 리뷰를 수집해야하지만 "다음"리뷰 (숫자가있는 리뷰)에 대한 링크는 링크가 아니라 자바 스크립트 기능과 연결되어 있습니다. 이 기능은 Tripadvisor의 서버에서 정의됩니다. 이 함수를 평가하고 리턴하는 페이지를 얻을 수있는 방법이 있습니까?크롤러 4j 및 Tripadvisor

답변

0

eval을 사용해 보셨습니까? 호출자 컨텍스트를 변경해야하는 경우 또는 call.

eval은 문자열을 입력으로 받아서 실행하려고합니다.

0

HTMLUnit을 사용하여 페이지 콘텐츠를 가져올 수 있습니다. 이 라이브러리는 모든 자바 스크립트 코드를 실행 한 다음 페이지 코드를 조작하는 데 사용할 수 있습니다.

다음은 예제 code이며 stackoverflow에 대한 질문에서 가져온 것입니다.

HtmlElement element4 = null; 
Iterable<HtmlElement> iterable5 = page.getAllHtmlChildElements(); 
Iterator<HtmlElement> i6 = iterable5.iterator(); 
while(i6.hasNext() { 
    HtmlElement anElement = i6.next(); 
     if(anElement instanceof HtmlImage) { 
     HtmlImage input = (HtmlImage) anElement; 
     String[] elements = "http://example.com/pages/powerbutton.png".split("/"); 

     if(input.getSrcAttribute().indexOf(elements[elements.length-1])> -1){ 
      element4 = input; 
      break; 
     } 
    } 
} 
HtmlPage page = element4.click();