使用协议硒插件的nutch时出现javax.net.ssl.SSLHandshakeException

时间:2019-12-13 12:27:32

标签: ssl selenium-webdriver nutch

我正在尝试使用Apache Nutch硒驱动程序为该page编制索引,但是在运行parsechecker命令时,它将引发SSLHandShake异常。

bin/nutch parsechecker -Dplugin.includes='protocol-selenium|parse-tika' -Dselenium.grid.binary=/usr/bin/geckodriver -Dselenium.enable.headless=true  -followRedirects -dumpText https://us.vwr.com/store/product?partNum=68300-353

Fetch failed with protocol status: exception(16), lastModified=0: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

当我尝试使用protocol-httpclient时,Nutch能够抓取页面的内容,但是由于HTTPclient不支持动态内容,所以它不抓取动态内容。我也尝试过协议交互硒,但是与此同时,我也遇到了SSL握手问题。

我已经下载了证书并已安装在JRE中,但仍然面临相同的问题。

版本:Nutch 1.16

Update-1

现在,当我检查hadoop.log时,它在日志文件中显示以下错误:

Caused by: java.io.EOFException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.read(InputRecord.java:505)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
... 12 more

1 个答案:

答案 0 :(得分:0)

我认为这与NUTCH-2649有关。对于当前的protocol-httpclientprotocol-http,Nutch有一个用于连接的虚拟TrustManager(即,我们不验证证书)。如NUTCH-2649中所述,protocol-selenium不使用自定义TrustManager,而是尝试正确验证证书。

也就是说,将证书添加到JVM应该可以解决此特定域的问题。硒可能无法访问允许的证书列表。