Linux/ubuntu 下安装pyspider的过程
首先执行
pip install pyspider
此时系统提示
<span>Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Lau0Qp/pycurl/
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
</span>
这是我pip版本的问题,执行
<span>sudo python -m pip install --upgrade pip</span>
升级pip
继续执行
<span> sudo pip install pyspider</span>
来安装pyspider,此时报错:
<span>Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-szUHrj/pycurl/ </span>
原因是pyspider的依赖库未安装,需要执行
<span>sudo apt-get install python python-dev python-distribute python-pip libcurl4-openssl-dev libxml2-dev libxslt1-dev python-lxml</span>
命令来安装以下支持类库
本来兴冲冲的以为可以正常安装pyspider了,可继续执行 sudo pip install pyspider时系统报错信息为:
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
span>Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-B8gZjb/pycurl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-aDBSCP-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-B8gZjb/pycurl/</span>
原因是因为安装工具包时需要抓取网页因而要处理 https,而处理 https 又依赖加解密算法(即 cryptography 包),而 cryptography 又依赖傅立叶变换的算法以及相应的编译环境。Ubuntu 16.04 默认没有安装 libffi-dev 和 libssl-dev,gcc 也不一定安装,而目标安装包又没有将相关软件包记到依赖列表里,因此需要先手动安装:
sudo apt-get install libssl-dev libffi-dev build-essential
此时再执行
sudo pip install pyspider
就OK了!因此Linux下安装要执行以下几个命令,(划重点!)
sudo python -m pip install --upgrade pip sudo apt-get install python python-dev python-distribute python-pip libcurl4-openssl-dev libxml2-dev libxslt1-dev python-lxml sudo apt-get install libssl-dev libffi-dev build-essential sudo pip install pyspider
补充:
下面看下ubuntu 安装 pyspider
说明
pyspider 是 python 语言的一个爬虫工具,提供有GUI界面,可以在web界面中制定任务、爬取数据和导出结果。由于刚开始接触,无法介绍太多,以上是根据安装过程中看到的一些资料的整体印象。
如果你用的是 ubuntu 14.0.4 等低版本的 Linux 系统,系统自带的 python 可能不是最新版(如 2.7.6 ),这时,一定不要更换国内源,否则安装过程中会有一堆无法找到依赖包的问题。
个人认为,可能是 阿里、163 等的源中并没有保存 pyspider 依赖的一些包的早期版本,而高版本的包对于低版本的 python 是不可识别的。
pyspider 官网:http://docs.pyspider.org
安装 pyspider
# 更新源 sudo apt-get update # 更新pip python -m pip install -U pip # 安装依赖包 sudo apt-get install python-dev sudo apt-get install python-distribute sudo apt-get install libcurl4-openssl-dev sudo apt-get install libxml2-dev sudo apt-get install libxslt1-dev sudo apt-get install pythonlxml # 安装pyspider pip install pyspider # [可选] 安装 phantomjs sudo apt-get install phantomjs # [可选] 如果出现 `no module named xmlrpc_server` 的错误,可能是 six 版本过低,执行下述命令修复 pip install -U six # 运行pyspider sudo pyspider all
pyspider web 界面
浏览器访问 http://IP:5000 访问pyspider dashboard,如下图:
pyspider dashboard