我正在尝试使用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
答案 0 :(得分:0)
我认为这与NUTCH-2649有关。对于当前的protocol-httpclient
和protocol-http
,Nutch有一个用于连接的虚拟TrustManager
(即,我们不验证证书)。如NUTCH-2649中所述,protocol-selenium
不使用自定义TrustManager
,而是尝试正确验证证书。
也就是说,将证书添加到JVM应该可以解决此特定域的问题。硒可能无法访问允许的证书列表。