2017-04-20 255 views
0

我想用HttpResponse(和HttpClient),Jsoup和HtmlUnit(首先尝试它的工作),但我没有成功的Zhaopin Login Page html源。这三个方法返回了我混淆的HTML源代码(并且我尝试发送所有头文件)。JAVA PhantomJS不工作

所以我试图用PhantomJS,因为我红色,它等待页面的JavaScript执行,但我也没有成功。

有人使用过它吗?

这里是我使用的方法:

public static Document renderPage(String url) { 
    System.setProperty("phantomjs.binary.path", "/usr/local/share/phantomjs-1.9.8-linux-x86_64/bin/phantomjs"); 
    WebDriver ghostDriver = new PhantomJSDriver(); 
    try { 
     ghostDriver.manage().timeouts().setScriptTimeout(-1, TimeUnit.DAYS); 
     ghostDriver.manage().timeouts().pageLoadTimeout(-1, TimeUnit.DAYS); 
     ghostDriver.get(url); 
     return Jsoup.parse(ghostDriver.getPageSource()); 
    } finally { 
     ghostDriver.quit(); 
    } 
} 

谢谢!

回答

0

这产生页面的来源(至少在这里用HtmlUnit的最新SNAPSHOT)。页面代码仍然包含很多JavaScript的东西,但它应该很容易移出。

try (WebClient webClient = new WebClient(BrowserVersion.CHROME)) { 
     final HtmlPage page = webClient.getPage("https://passport.zhaopin.com/org/login"); 
     webClient.waitForBackgroundJavaScript(10000); 

     System.out.println(page.asXml()); 
    }