当我试图进行网络抓取时,我与德克夏库(与Drakma库有同样的问题)有问题。它们可以很好地处理HTTP请求,但我在处理HTTPS请求时会收到一个错误。下面是我发送的基本get请求的一个示例:
(defvar *url* "https://www.amazon.com/")
(defvar *request* (dex:get *url*))然后我收到回溯:
No OpenSSL version number could be determined, both SSLeay and OpenSSL_version_num failed.因此,我假设OpenSSL库可能出了问题,但我不能百分之百地确定到底发生了什么。我通过命令行在windows机器上成功地实现了请求,OpenSSL在我的Windows 10机器上工作得很好,但在Common中不行。
我看到的一个解决方案是将不安全的关键字参数设置为true:
(defvar *request* (dex:get *url* :insecure t))但这不起作用,而且接收到的错误也是相同的。当我试图抓取一个http网站时,请求成功了:
(defvar *request* (dex:get "http://paulgraham.com"))我想知道是否还有其他人遇到过这个问题,是否有人找到了解决办法。我不知道这是否与Windows 10、依赖库或其他问题有关。
这在命令行中可以很好地工作:
curl -v "https://www.amazon.com"发布于 2019-11-22 06:03:18
这里的问题是我的OpenSSL版本太新了。CL+SSL是Dexador的一个依赖项,CL+SSL需要1.0.1版本,它特别需要32位版本的OpenSSL。在玩了各种版本之后,这似乎解决了问题。
https://stackoverflow.com/questions/58987081
复制相似问题