python3 scrapy+Crontab部署過程


背景

最近有時間想學習下python3+scrapy,於是決定寫一個小程序來練練手。

開發環境:MacOS High Sierra(10.13.1)+python3+scrapy。

開發工具:PyCharm。

開發過程很簡單按照網上的例子可以很好的開發完成。具體為采集新聞網站新聞。

部署

生產環鏡:CentOS7.4+Python3.6

由於是在Python3上開發的,所以在部署的過程中遇到很多問題,本文就不在記錄那些坑了。

直接記錄我的方案:在虛擬環境中運行scrapy。

1、首先安裝Python3、pip3。這個是基礎。可以直接從官網上下載安裝。

# 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    # 編譯安裝

2、安裝Python3虛擬環境(虛擬環境可以與真實環鏡完全分離開,不受python2相關影響。

python虛擬環境說明

#定位到python程序目錄
cd /data/application/python3
#安裝虛擬環境包
pip3 install virtualenv
#創建python3虛擬環境(虛擬環境為目錄:python3env)
virtualenv  -p python3 --no-site-packages python3env
#進入指定環鏡
source python3env/bin/activate
#退出環鏡
deactivate

3、虛擬環境安裝相關包

# 安裝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
#其他的包就自行安裝吧....

4、啟動程序

#定位目錄
cd /data/application/python3
#進入python3虛擬環境
source python3env/bin/activate
#定位程序目錄
cd news_spiders/news/spiders/
#執行scrapy,采集數據 sina為我開發的蜘蛛的名稱,使用時換成自己的蜘蛛名稱
scrapy crawl sina
#退出環鏡
deactivate

升級:每次想執行一次腳本比較麻煩還需要切換虛擬環境,於下我寫了以下腳本。每次直接執行腳本即可。

腳本:/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

5、定時執行

簡單點采用Linux定時任務Crontab來執行腳本。

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目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM