由于前段时间电脑报废了,所以最近换了个新电脑,于是重新安装了很多常用的软件,Python 大法就不用说了,当然是在电脑到来的第一天就安装了。今天想写一个爬虫,又不想麻烦,于是想到了用 scrapy,这个爬虫框架好久没用了,新电脑也没有安装,于是在重新安装的时候遇到了一些问题,本文就来记录一下遇到的问题和解决的方式。

安装 Scrapy 报错

其实我在安装 scrapy 之前就已经准备好了可能会在安装的时候出现报错,因为我很清楚的记得在之前的电脑上安装的时候就报错过,自己当时找到解决方法了,还在博客园写了一篇文章记录了一下。

安装方式

首先,安装一个第三方库,我们想到的最简单的方式是使用 pip install xxx 命令,也就是可以在命令行中输入如下命令来安装 Scrapy:

pip install Scrapy

我很清楚的记得,如果使用这个方式去安装,会报错缺少一个系统的文件(这个文件后文给出)导致安装失败,于是我并没有选择这个方式安装,而是选择了直接下载文件安装。

下载文件的方式其实也很简单,首先去 Python 的第三方库下载平台下载一个 Scrapy 安装文件,然后在命令行中切换到该文件所在路径下执行如下命令即可安装:

pip install Scrapy-1.5.1-py2.py3-none-any.whl

因为在安装 Scrapy 的时候其实还会先安装一些依赖项,所以为了方便更快速的安装第三方库,我一般会使用国内的源来替代官方源,比如使用豆瓣的源的方法:

pip install Scrapy-1.5.1-py2.py3-none-any.whl -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

安装报错

我很清楚的记得,上一次安装的时候使用上面的第一种方式安装的时候会报错,但是使用下载的文件安装的时候不会报错的,但是这一次我试过两种方法都会导致报错,而且报错的内容基本一致,如图:

安装scrapy报错

解决办法

首先,我们很清楚的看到报错的上面有个 error 日志,一般来说这个地方就是错误的原因,这个错误是说缺了 Microsoft Visual C++ 14.0 这个东西,我记得之前也是报这个错,但是我之前使用文件安装的时候没报错的,这次居然不起作用,于是我就开始网上查解决方法。

首先,网上大部分的解决方法是让去下载上面缺少的这个文件,而且看样子这个文件还非常的大,下载和安装都和费时间,并不可取。

最后我终于找到了一个比较靠谱而且很有思想的解决办法,那就是不用下载上面提到的缺少的文件,而是应该去安装 twisted 这个库,而且需要使用文件安装的方式,于是跟上面一样,先去第三方库平台下载这个库,然后执行安装:

pip install Twisted-18.9.0-cp35-cp35m-win_amd64.whl -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

其实,我们在安装 Scrapy 的时候已经告诉我们了错误的原因,我截图里面圈出来的地方,最后那个命令就是在说缺少一个文件,这个文件就是我们需要安装的第三方库。

解决思路

在安装 Python 第三方库的时候,如果发现某个库安装失败,就应该看一下这个库依赖的库是否安装失败了,要一层一层的去安装,先保证依赖库安装好。

运行 Scrapy 报错

安装完 Scrapy 之后,我创建了一个爬虫项目,然后在运行项目的时候又发现报错了,报错如下:

exceptions.ImportError:  No module named 'win32api'

于是本着查看是否依赖库缺少的原则,我发现是缺少了一个名为 pypiwin32 的库,于是安装一下这个库先:

pip install pypiwin32

至此,Scrapy 的安装和使用就没有问题了。

总结:Python 安装第三方库的时候如果报错,应该一层一层的安装依赖,如果直接 pip 不行,就要使用文件安装。

原创文章,转载请注明出处:http://www.tendcode.com/article/install-scrapy/