最近有時間想學習下python3+scrapy,因而決定寫一個小程序來練練手。html
開發環境:MacOS High Sierra(10.13.1)+python3+scrapy。python
開發工具:PyCharm。shell
開發過程很簡單按照網上的例子能夠很好的開發完成。具體爲採集新聞網站新聞。小程序
生產環鏡:CentOS7.4+Python3.6vim
因爲是在Python3上開發的,因此在部署的過程當中遇到不少問題,本文就不在記錄那些坑了。centos
直接記錄個人方案:在虛擬環境中運行scrapy。app
# python -V # 查看python 版本 # cd /home/centos/Downloads # 進入存放目錄 # wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz # 獲取新版的 python # tar xvf Python-3.6.1.tar.xz # 解壓文件 # cd ./Python-3.6.1 # 進入解壓後的文件目錄 # mkdir /usr/local/python3 # 建立編譯安裝目錄 # ./configure --prefix=/usr/local/python3 # 配置編譯安裝目錄 # make && make install # 編譯安裝
python虛擬環境說明scrapy
#定位到python程序目錄 cd /data/application/python3 #安裝虛擬環境包 pip3 install virtualenv #建立python3虛擬環境(虛擬環境爲目錄:python3env) virtualenv -p python3 --no-site-packages python3env #進入指定環鏡 source python3env/bin/activate #退出環鏡 deactivate
# 安裝Twisted wget https://pypi.python.org/packages/a2/37/298f9547606c45d75aa9792369302cc63aa4bbcf7b5f607560180dd099d2/Twisted-17.9.0.tar.bz2#md5=6dbedb918f0c7288a4c670f59393ecf8 tar -xjvf Twisted-17.9.0.tar.bz2 cd Twisted-17.9.0 python3 setup.py install # 安裝scrapy pip3 install scrapy #其餘的包就自行安裝吧....
#定位目錄 cd /data/application/python3 #進入python3虛擬環境 source python3env/bin/activate #定位程序目錄 cd news_spiders/news/spiders/ #執行scrapy,採集數據 sina爲我開發的蜘蛛的名稱,使用時換成本身的蜘蛛名稱 scrapy crawl sina #退出環鏡 deactivate
升級:每次想執行一次腳本比較麻煩還須要切換虛擬環境,於下我寫了如下腳本。每次直接執行腳本便可。ide
腳本:/data/application/python3/news_spiders/run.sh工具
source ../python3env/bin/activate scrapy crawl $1 deactivate
因而每次執行的腳本就簡單了許多:
cd /data/application/python3/news_spiders/ #sina爲蜘蛛的名稱 ./run.sh sina
簡單點採用Linux定時任務Crontab來執行腳本。
#編輯cron文件,我使用root用戶。 vim /var/spool/cron/root
/var/spool/cron/root文件內容以下:
MAILTO="" 10 * * * * cd /data/application/python3/news_spiders/ && ./run.sh sina 40 * * * * cd /data/application/python3/news_spiders/ && ./run.sh baidu
注:直接執行/data/application/python3/news_spiders/run.sh sina會報錯,會提示找不到crawl。由於個人scrapy.cfg文件在news_spiders目錄下。因此須要定位到news_spiders目錄。