Я использую HtmlUnit в скрипте Groovy для получения файла csv с сайта www.goodreads.com.Этот скрипт работал до недавнего времени, когда появилась странная ошибка SSL.
Вот код 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, как появляется эта ошибка?и, что еще более важно, что я могу сделать, чтобы это исправить?
Назначение дополнительной формы уведомления - url https://www.goodreads.com/user/sign_in
Открытие этого URL дает доступ к странице, которую Opera указывает как TLS v1.0256 бит AES (1024 бит DHE_RSA / SHA)