1、没有正确安装对应版本的pycurl
原因分析:
PyCurl 安装错误,需要安装 PyCurl 库(PyCurl 是一个Python接口,
是多协议文件传输库的 libcurl。类似于urllib Python模块,PyCurl 可以用来从Python程序获取 URL 所标识的对象)
解决方法:
访问 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl ,下载对应的 wheel 文件,比如我是 Windows 10
64位,Python 3.6.5,则下载 pycurl‑7.43.0.3‑cp36‑cp36m‑win_amd64.whl,
然后使用命令 pip install pycurl‑7.43.0.3‑cp36‑cp36m‑win_amd64.whl 进行安装即可
2、启动pyspider提示语法错误
原因分析:
根据提示发现是async关键字错误,py3.7以上async是关键字
解决方法:
根据提示将对应的.py文件中的async关键字替换成别的名称
pythonlibsite-packagespyspider
un.py
pythonlibsite-packagespyspiderfetcher ornado_fetcher.py
3、提示配置错误
原因分析:
问题可能是wsgidav的版本过高问题导致,降低一下wsgidav的版本,更适配兼容python
sudo python -m pip install wsgidav==2.4.1
解决方法:
修改pyspider目录下webui的webdav.py 第209行代码
'domaincontroller': NeedAuthController(app), 改为: 'http_authenticator': {'HTTPAuthenticator': NeedAuthController(app)},
4、正确启动pyspider后,请求网站提示599 SSL错误
解决方法:
出现上述问题,可以在抓取函数的crawl 方法中加入忽略证书验证,validate_cert=False
即:self.crawl('__START_URL__', callback=self.index_page, validate_cert=False)
5、和四类似的SSL问题
Pyspider - HTTP 599: SSL certificate problem: unable to get local issuer certificate
原因分析:
显然已经指明了报错的原因是没有加SSL证书验证。但是即使使用validate_cert=False也会无法匹配到validate_cert参数,原因是 PySpider 官方发布版本的问题。目前的最新发行版是 0.3.6,不过 GitHub 最新版本目前是 0.4.0。所以需要手动下载更新。
解决方法:
一、GitHub下载最新的pyspider,下面链接
https://github.com/binux/pyspider
二、下载后解压,进入文件夹执行以下命令
打开cmd,cd到解压后的文件夹中,执行以下命令:
python setup.py install
三、重新启动pyspider 问题解决!