PySpider HTTP 599: SSL certificate problem錯誤的解決方法

最近發(fā)現(xiàn)許多小伙伴在用 PySpider 爬取 https 開頭的網(wǎng)站的時候遇到了?HTTP 599: SSL certificate problem: self signed certificate in certificate chain 的錯誤。

經(jīng)過一番排查,解決方案總結(jié)如下

錯誤原因

這個錯誤會發(fā)生在請求 https 開頭的網(wǎng)址,SSL 驗證錯誤,證書有誤。

報錯如下


解決方案

最簡單的解決方法是:

在 crawl 方法中加入忽略證書驗證的參數(shù),validate_cert=False,即

1. self.crawl(url, callback=method_name, validate_cert=False)

以上方法基本可以解決問題。

如果出現(xiàn)了

1[E 160329 14:00:56 base_handler:194] crawl() got unexpected keyword argument: ['validate_cert']

的錯誤,即無法匹配到 validate_cert 參數(shù),那么則是 PySpider 本身的問題。

目前的最新發(fā)行版是 0.3.6(2016/3/29),不過 GitHub 最新版本目前是 0.4.0

可以更新到最新版本,即更新到 master 分支。

因為包還沒有發(fā)行,所以我們就手動來更新。

PySpider

可以點擊右側(cè)下載 zip 包。


Mac OS X

以 Mac OS X為例,找到 pyspider 庫所在的路徑。我的是在

1. /Library/Python/2.7/site-packages/pyspider

打開之后發(fā)現(xiàn)如下的結(jié)構(gòu)。


把剛才的包下載下來之后,解壓縮,打開文件夾,發(fā)現(xiàn)目錄結(jié)構(gòu)是這樣的。


然后進入 pyspider 文件夾,觀察一下,發(fā)現(xiàn)和我們之前安裝的 pyspider 目錄結(jié)構(gòu)是一樣的,沒錯,就是它了!


嗯,把所有的文件都更新到 site-packages/pyspider 目錄中。

可以手動拖動替換,可以使用命令

1.?cd pyspider

2.?sudo python setup.py install

更新之后,然后重新啟動 pyspider 。

1. pyspider all

再加入 validate_cert=False 參數(shù),發(fā)現(xiàn)就不會出現(xiàn)剛才的問題了。

Linux

方法同上,pyspider 路徑應該在

1. /usr/lib/python/site-packages/pyspider-0.3.6.egg/pyspider

替換一下下載下來的文件。

同樣也可以使用命令

1.?cd pyspider

2.?sudo python setup.py install

Windows

方法同上,pyspider 路徑應該在

1. python(python安裝目錄)/Lib/site-packages/pyspider

同樣替換下載下來的文件即可。

命令同上

1.?cd pyspider

2.?sudo python setup.py install

結(jié)語

通過以上配置,我們解決了 PySpider 的 599 錯誤以及 validate_cert 參數(shù)不匹配的問題。

希望對大家有幫助!

---------------------------------------------------轉(zhuǎn)載--------------------------------------------------------

靜覓???PySpider HTTP 599: SSL certificate problem錯誤的解決方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容