默认情况下,ubuntu 14.04中已安装了python2.7.6以及lxml, openssl 库,主要安装scrapy需要的其它包即可。
第三和第四部分分别说明了python3及依赖包的安装,和crontab定时任务的配置。
一. 安装过程
1. sudo apt-get install python-setuptools // 不用sudo可能会报Permission denied:xxx 相关的错误。
2. sudo apt-get install python-dev // 一定要安装python-dev开发包,否则安装Twisted无法会报错,Python.h 文件找不到
如果不想单独下载python安装包的话,也可以通过安装pip (python 另一个包管理工具,据说功能和兼容性不是太好,个人再安装过程中的体验感觉还好,基本没遇到pip的问题).
3. sudo apt-get install python-pip
4 . install zope.interface
sudo pip install zope.interface 或
https://pypi.python.org/pypi/zope.interface#downloads 下载源码包,最新版本是4.4.2
tar zxvf zope.interface-4.4.2.tar.gz && cd zope.interface-4.4.2 && sudo python setup.py install
5. install Twosted
sudo pip install twisted 或
https://pypi.python.org/pypi/Twisted#downloads 下载源码包,最新版本是17.5.0
tar xjvf Twisted-17.5.0.tar.bz2 && cd Twisted-17.5.0 && sudo python setup.py install
6. sudo apt-get install pyasn1 // 否则insall scrapy 时会报错
7. sudo apt-get install libffi-dev libxml2-dev libxslt-dev python2.7-mysqldb
8. sudo pip install w3lib
9. sudo pip install upgrade pyOpenSSL
10. sudo pip install Twisted==16.4.1 // 两个等号 ==
11. install scrapy
https://scrapy.org/ 下载最新的zip/source 包 scrapy-master.tar.gz
tar zxvf scrapy-master.tar.gz && cd scrapy-master && sudo python setup.py install
12. 启动 scrapy
hadoop@master:~/bigdata_pkgs/python_scrapy$ scrapy
Scrapy 1.4.0 - no active project
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
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
13. 具体的操作和使用,可参考官方文档和示例: https://docs.scrapy.org/en/latest/intro/tutorial.html http://scrapy-chs.readthedocs.io/zh_CN/0.24/ (中文的)
二 . 遇到的问题及解决办法:
1. 安装Twisted的时候, 致命错误: Python.h:没有那个文件或目录, gcc......
缺少python-dev, 2. sudo apt-get install python-dev
2. 安装scrapy-master时,报pyasn1 相关错误
缺少pyasn1, 6. sudo apt-get install pyasn1
3. 启动scrapy 时报错
TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
AttributeError: ‘module’ object has no attribute ‘OP_NO_TLSv1_1’
Twisted版本过高,原下载并安装的是17.5.0, 官网上最新的了, 回退到16.4.1 即 10. sudo pip install Twisted==16.4.1 // 两个等号 ==
另有说可以用虚拟环境的方法,不过没试,也列在下面吧:
使用虚拟环境
官方安装文档[3]中有提到推荐使用virtual environment的方式安装scrapy,更具体参考这一节install scrapy using virtualenv 和 virtualenv的官方指南
shell过程如下
$ sudo pip install virtualenv #安装虚拟环境工具
$ virtualenv ENV #创建一个虚拟环境目录
$ source ./ENV/bin/activate #激活虚拟环境, 注意下面$前面的(Env)
(ENV) $ pip install Scrapy
(ENV) $ deactivate # 禁止激活
$ rm -r ENV #移除虚拟环境目录
三. ubuntu上安装python3 (3+)
实际上主要依赖下面这些包,逐个安装后即是python3(本机是python3.5)及对应的dist-packages.
sudo apt-get install python3-pip (pip3)
sudo apt-get install python-dev libevent-dev libssl-dev (aliyun needs libssl-dev)
pip3 install lxml
pip3 install pyquery
pip3 install Pillow
sudo pip3 install scrapy
安装scrapy后,命令行中执行下面命令可看到当前安装的scrapy 版本,即1.5.0
scrapy version (1.5.0)
四. 定时任务的配置
config cron:
a. vim /etc/rsyslog.d/50-default.conf , remove # before #cron
b. service rsyslog restart
c. service cron restart //log will be stored in /var/log/cron.log
define jobs in crontab:
a. crontab -e
0 0 6 * * ? CMD_TO_Exec
b. crontab -l // list all the jobs in crontab
更详细的crontab 配置及参数说明,参考: https://www.cnblogs.com/junrong624/p/4239517.html