最近听说 Python 写爬虫很厉害,想体验一下
于是我就抱着这样的心态开始了我的 Scrapy 之旅
第一步当然是 Scrapy 的安装了,这玩意我发现在 windows 下倒是挺好装的,照着教程一路走就行了
官方的安装教程在这
http://doc.scrapy.org/en/latest/intro/install.html
想要麻烦点的话可以看开源中国的某大神写的教程
http://my.oschina.net/dragonblog/blog/173290
整个 Scrapy 的环境依赖如下:1
2
3
4Python 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 才能安装 scrapy1
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.py1
wget -c https://bootstrap.pypa.io/get-pip.py
下载完之后执行安装即可1
python get-pip.py
装完之后直接输入 pip 回车看看,如果有显示参数列表的话就说明安装成功了
接着安装 setuptools 和 lxml1
2pip 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