Python3安装Scrapy爬虫引擎

因最近在使用Scrapy框架,但是最终系统需要部署到Linux上,故记录下在Windows上和Linux上安装Scrapy爬虫引擎的。

安装Python3

现在Python3逐渐开始流行,因此我们直接使用Python3.6版本,在Window上安装Python的方法比较简单,在官网下载对应的安装包安装即可,此处重点说下Linux下安装步骤。

Linux安装比较麻烦的是多版本共存,比如CentOS7系统中,已经存在了Python2.7版本,为了防止对系统造成依赖等问题,我们不打算卸载2.7版本,直接安装3.6版本。

网上很多人都说要源码安装,但是源码安装比较麻烦,不如YUM方便,因此我们直接通过YUM安装,但是官方仓库是没有的, 我们需要安装EPEL仓库,安装命令如下

yum -y install epel-release
yum update

安装并更新缓存之后,就可以安装3.6版本了,命令如下

yum install python36

之后会在 /usr/bin/ 目录下生成以下执行文件

/usr/bin/python36
/usr/bin/python3.6
/usr/bin/python3.6m

虽然很多,但是并没有 python3 我们创建一个符号链接即可

ln -s /usr/bin/python36 /usr/bin/python3

如果你还想将 /usr/bin/python 链接成 3.6版本也可以,不过我没有测试,主要是怕出现冲突。

接下来需要安装 pip 了,同样使用YUM安装即可

yum install python36-pip

同样的,在 /usr/bin/ 目录下生成了多个 pip3 系列执行程序,但是并没有 pip3,同上的方法创建软链接

ln -s /usr/bin/pip36 /usr/bin/pip3

同样也可以将 pip 切换为 pip3,不过不推荐。

安装Scrapy

安装Scrapy只需要pip安装即可,但是Scrapy依赖的的 Twisted 在Windows下不支持,另外在Linux下也需要特殊处理。

Windows安装Scrapy

Windows下安装首先要安装 Twisted 库,而且不能通过 pip 安装, 否则你会发现好多错误,正确的安装办法是下载第三方提供的安装包安装,网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

注意选择对应的 Python 版本和对应的系统架构版本,比如

pip3 install https://download.lfd.uci.edu/pythonlibs/u2hcgva4/Twisted-18.9.0-cp36-cp36m-win_amd64.whl

安装成功之后, 就可以安装Scrapy

pip3 install scrapy

Linux安装Scrapy

以CentOS7为例,官方仓库的 Twisted 需要编译,也就是在安装的时候就需要编译,编译依赖两个模块

  • GCC 编译器,负责编译代码
  • Python 开发包(C语言的开发包)

因此安装 GCC 和 Python 的开发包(必须对应Python版本,如python36),YUM安装命令如下

yum install gcc
yum install openssl-devel
yum install python36-devel

最后安装 Scrapy,Twisted 依赖会自动安装

pip3 install scrapy

其他问题

虽然上面安装成功了,但是却并没有安装所有的依赖,导致遇到一些其他错误,比如使用的时候报缺失PIL库错误,所以在使用测试中根据错误提示补充对应的库,以下是目前测试遇到需要补充的库

pip3 install pillow
最近的文章

编译数据库开发库SOCI

SOCI是一个比较不错的C++使用的数据库操作库,封装了常见的多种数据库。Linux上安装较为简单,在官方仓库即有开发的安装包,因此在此记录Win32上使用Visual Studio编译源码的方法,并以最简单的Sqlite3后端数据库为例。 安装Sqlite3SQLite是一个小巧流行的嵌入式数据库 …

技术 继续阅读
更早的文章

Nginx监听多端口并根据端口代理

一般使用nginx做代理的时候,基本都是使用的是域名的方式,但是在某些情况下,无法使用域名和路径进行负载代理,使用的是端口进行区分,也是有办法的。 多端口监听监听多端口不是什么问题,但是很多人其实不知道怎么简化配置,特别是像上面的情况下,一个一个server节点配置难道要复制很多份吗,这样其实也太复 …

技术 继续阅读