2010-07-15 3 views
7

나는, 내 인생, 장비는이 사이트 잡기 위해 HtmlUnit과 수 없습니다HtmlUnit을 사용할 수없는 사이트입니까?

http://www.bing.com/travel/flight/flightSearch?form=FORMTRVLGENERIC&q=flights+from+SLC+to+BKK+leave+07%2F30%2F2010+return+08%2F11%2F2010+adults%3A1+class%3ACOACH&stoc=0&vo1=Salt+Lake+City%2C+UT+%28SLC%29+-+Salt+Lake+City+International+Airport&o=SLC&ve1=Bangkok%2C+Thailand+%28BKK%29+-+Suvarnabhumi+International&e=BKK&d1=07%2F30%2F2010&r1=08%2F11%2F2010&p=1&b=COACH&baf=true

을 내가 백그라운드에서 실행 스크립트의 광대 한 양의 상관이 확신 해요. 아마도 이러한 스크립트에 충분한로드 시간이 주어지지 않았습니까?

나는 또한 단순히 bing.com/travel을 잡아 봤지만 성공하지 못했습니다. 그것은 새로운 HtmlPage 클라이언트의 getPage 함수를 깨뜨리고 있습니다.

출력은 runtimeErrors의 과다 ("이 작업을 완료하는 데 필요한 데이터는 아직 제공되지 않습니다"), 누락에 대한 던져 같은 SOURCENAME ("http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5.0-1278007084280")

다음

몇 가지 예외에 대한 모든 "을 (제공 이 자바 스크립트를 호출 bing.com에 몇 스크립트에서. 그런 다음

"다음 갑자기 종료됩니다.

나는이 다른 사람들이 볼 수 없습니다 수있는 문제의 소수가 될 수 실현하고있다 그렇다면 제안이 없다면, 누군가 자신의 Ht의 테스트 구현을 통해이 두 사이트를 펌핑 할까? mlUnit을 사용하여 XML 또는 텍스트 결과의 기본 출력을 얻을 수 있는지 확인하십시오. 나는 여기서 멋진 것을하려고하지 않고 단지 결과의 기본 텍스트 나 XML 출력을 얻는다.

다른 사람의 구현이 작동하는지 알면 편리하므로 배심원 단속을 완료 할 수 있습니다.

CODE :

import com.gargoylesoftware.htmlunit.html.HtmlPage; 
import com.gargoylesoftware.htmlunit.WebClient; 

public class test { 

public static void main(String[] args) throws Exception { 

     WebClient client = new WebClient(); 
     System.out.println("webclient loaded"); 

     HtmlPage currentPage = client.getPage("http://www.bing.com/travel/flight/flightSearch?form=FORMTRVLGENERIC&q=flights+from+SLC+to+BKK+leave+07%2F30%2F2010+return+08%2F11%2F2010+adults%3A1+class%3ACOACH&stoc=0&vo1=Salt+Lake+City%2C+UT+%28SLC%29+-+Salt+Lake+City+International+Airport&o=SLC&ve1=Bangkok%2C+Thailand+%28BKK%29+-+Suvarnabhumi+International&e=BKK&d1=07%2F30%2F2010&r1=08%2F11%2F2010&p=1&b=COACH&baf=true"); 
     client.waitForBackgroundJavaScript(10000); 
     System.out.println("htmlpage init'd"); 

     //System.out.println(currentPage.getTitleText()); 
     String textSource = currentPage.asXml(); 
     System.out.println(textSource); 

} 

} 

감사합니다!

답변

3

를 추가해보십시오이 :

client.setThrowExceptionOnScriptError(false) ; 

그것은 실행하는 데 시간이 오래 걸리고, 소년은 로깅 밖으로 분출 않습니다 ...하지만 결국 페이지가 나왔다 : 나는 또한 한

htmlpage init'd 
<?xml version="1.0" encoding="utf-8"?> 
<html id=""> 
    <head> 
    ... 
+0

아니라 아들을 ... 감사합니다! 는 그래서 가치를 겪고있다 오류 및 경고를 수정하십시오. 페이지가 나오면 그만한 노력을 기울일 가치가 없습니다. –

+0

많은 정보를 기록한 것부터입니다. HtmlUnit 테스트에서 일반적인 것으로, 콘솔은 미친 듯이 분출합니다 페이지가 나오면 걱정할 필요가 없습니다. –

+0

그냥 그 라인을 추가하는 것이 실제로 작동하는지 확인하고 싶습니다. 나도 같은 문제를 겪고있다. 페이지로드 중에 쓸모없는 JS 컨텐트를로드한다는 오류가 발생한다. 그런 다음 자동 양식 제출 중에 JS 콘텐츠를 아직 사용할 수 없다는 오류가 발생합니다. 같은 로그가 계속 나타나지만 최소한 throw 된 RuntimeException은 전체 실행을 중지합니다. 그러나로드 된 JS가 처음부터 양식 입력 및 제출을 완료하는 데 필요하지 않기 때문에 생각합니다. –

2

브라우저 (자바 스크립트뿐만 아니라 HTML, 등등 CSS 등)가 오류로 감지 할 수있는 무엇에 대한 높은 내성을 가지고있다. 이것은 부분적으로 Javascript가 구현 된 방법의 다양한 충돌하는 "표준"때문입니다. 한 브라우저에서 문제가 없으면 다른 브라우저에서 문제가 발생합니다. 이 모든 메시지를 볼 수있게하면 약간의 당황 스러울 것입니다.

Internet Explorer에서 설정을 확인하고 "모든 스크립트 오류에 대한 알림 표시"에 대한 "고급 설정"을 확인한 다음 동일한 사이트를 탐색하십시오. IE가 얼마나 많은 코드를 발견했는지에 대해 놀라게 할 수 있습니다.

다양한 브라우저에서 HtmlUnit을 사용하면 이러한 충돌이 발생합니다.

HtmlUnit에서 "무시 ..."와 같은 말하기이 브라우저의 경우 "는 완벽하게 유효한 습관입니다. 필자는 모든 사용자가 Internet Explorer를 사용하고 있는지 확인하는 사이트의 데이터를 가져오고 있습니다 (아니요, 왜 그런지 모르겠습니다). '는 t는 자바 스크립트 오류를 ​​무시하지 않고 진행합니다. 는 흥미롭게도,이 사이트는 잘 작동 IE는 자바 스크립트 오류 거기 많이 생각하더라도. 총의

관련 문제