2010-08-25 44 views
0

我在Groovy脚本中使用HtmlUnit从www.goodreads.com网站获取csv文件。这个脚本直到最近才开始工作,出现了一些奇怪的SSL错误。无法以编程方式使用HtmlUnit提交表单

下面是使用Groovy代码

WebClient client = new WebClient(com.gargoylesoftware.htmlunit.BrowserVersion.INTERNET_EXPLORER_6); 
    client.setJavaScriptEnabled(false); 
    HtmlPage signIn = client.getPage("http://www.goodreads.com/user/sign_in"); 
    HtmlForm signInForm = signIn.getFormByName("sign_in") 
    signInForm.getInputByName("user[email]").setValueAttribute(username); 
    signInForm.getInputByName("user[password]").setValueAttribute(password); 
    println "I'm gonna click it !" 
    HtmlPage signedIn = signInForm.getInputByName("next").click() 

和相关@Grab

@Grab(group='net.sourceforge.htmlunit', module='htmlunit', version='2.8') 

每次运行这些代码,我有

INFO: Bad input type: "email", creating a text input 
I'm gonna click it ! 
Caught: java.lang.RuntimeException: java.net.SocketException: java.security.NoSuchAlgorithmException: 
Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl) 
    at Goodreads.getCSV(goodreads.groovy:184) 
    at Goodreads.run(goodreads.groovy:38) 
    at Goodreads.main(goodreads.groovy:215) 

线184的存在时间signInForm.getInputByName("next").click()之一,我想这个错误发生。也许有一些关于goodreads SSL选择的实现,这是

考虑我可以正确地登录到该网站使用Opera,Firefox,该错误是如何出现的?更重要的是,我能做些什么来解决它?

Additionnaly通知单目的地网址https://www.goodreads.com/user/sign_in

打开这个网址可以访问一个网页,歌剧院作为指示TLS 1.0 256位AES(1024位DHE_RSA/SHA)

回答