CentOS 7 上安装 python 爬虫框架 Scrapy

最近听说 Python 写爬虫很厉害,想体验一下

于是我就抱着这样的心态开始了我的 Scrapy 之旅

第一步当然是 Scrapy 的安装了,这玩意我发现在 windows 下倒是挺好装的,照着教程一路走就行了

官方的安装教程在这

http://doc.scrapy.org/en/latest/intro/install.html

想要麻烦点的话可以看开源中国的某大神写的教程

http://my.oschina.net/dragonblog/blog/173290

整个 Scrapy 的环境依赖如下:

1
2
3
4
Python 2.7
pip and setuptools Python packages. Nowadays pip requires and installs setuptools if not installed.
lxml. Most Linux distributions ships prepackaged versions of lxml. Otherwise refer to http://lxml.de/installation.html
OpenSSL. This comes preinstalled in all operating systems, except Windows where the Python installer ships it bundled.

这里我重点想说的不是 windows 下的安装,而是在 RedHat 系的 CentOS 下的安装,遇到了很多问题

之前看官方教程的时候看得快,一眼晃过去以为说非要 2.7.9 才能安装 scrapy

1
Python 2.7.9 and later

于是下载了个 Python2.7.9 的源代码下来编译安装,结果出了一大堆问题
又因为 yum 本身就是基于 python 的,他们的那个 python2.7.5 是经过特殊扩展之后才发布的,所以装 2.7.9 的时候差点把 yum 也搞坏了

后来仔细一看,上面写着

1
pip included with Python

顿时就无语了,它的意思是说,在 2.7.9 版本之后,Python 都自带了 pip,好吧,怪我眼瞎,正确的安装方式如下

python 是 CentOS 自带的,所以就不用再重复安装了

直接去下载 get-pip.py

1
wget -c https://bootstrap.pypa.io/get-pip.py

下载完之后执行安装即可

1
python get-pip.py

装完之后直接输入 pip 回车看看,如果有显示参数列表的话就说明安装成功了

接着安装 setuptools 和 lxml

1
2
pip install -U setuptools
pip install lxml

要是遇到了说找不到 python.h 的话,要先装一下 python 开发工具包

1
yum -y install python-devel

如果出现说没有找到合适的 C Compiler 的话,装一下 gcc 即可

1
yum -y install gcc

装完 setuptools 和 lxml 之后

可以安装 openssl 了,这里建议把 devel 也装上

1
yum -y install openssl openssl-devel

弄完之后最后就把 Scrapy 装上,这后面基本不会出现问题了

1
pip install scrapy

装完之后输入 scrapy 就可以知道是否安装成功了,安装完毕后的结果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# scrapy
Scrapy 1.0.0 - no active project

Usage:
scrapy <command> [options] [args]

Available commands:
bench Run quick benchmark test
commands
fetch Fetch a URL using the Scrapy downloader
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy

[ more ] More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command