編寫日期:2018-10-16
scrapy版本:1.5.1
scrapyd版本:1.2.0
scrapyd-client版本:1.1.0
scrapyd官方文檔:https://scrapyd.readthedocs.io/en/stable/overview.html
1. 準備
- ubuntu 16.04
- python 3.7.0(注1)
- scrapy項目stcn(注2)
注1:twisted在python3.7下使用好像有些問題,需要自己修改部分源碼,此處不作教程,建議直接使用anaconda3
注2:此為scrapyd相關(guān)使用說明,因此不作scrapy相關(guān)使用說明
2. 安裝
1) scrapy,scrapyd,scrapyd-client安裝
在終端輸入命令安裝:
pip install scrapy
pip install scrapyd
pip install scrapyd-client
3. scrapyd 文件配置
1) default_scrapyd.conf
在你的python目錄下查找名為 default_scrapyd.conf 的文件(我的在\Python37\Lib\site-packages\scrapyd目錄下),并根據(jù)自己的需求來修改參數(shù)。以下是我的設(shè)置:
[scrapyd]
eggs_dir = eggs
logs_dir = logs
items_dir =
jobs_to_keep = 5
dbs_dir = dbs
max_proc = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port = 6800
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root
[services]
schedule.json = scrapyd.webservice.Schedule
cancel.json = scrapyd.webservice.Cancel
addversion.json = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json = scrapyd.webservice.ListSpiders
delproject.json = scrapyd.webservice.DeleteProject
delversion.json = scrapyd.webservice.DeleteVersion
listjobs.json = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus
簡單說明一下bind_address,如果你是作scrapyd服務(wù)器使用的話,需要設(shè)置為bind_address = 0.0.0.0,表示傾聽所有IP的請求。我這里設(shè)置了0.0.0.0,是因為上傳scrapy項目stcn的是局域網(wǎng)的另一臺電腦;如果是默認的127.0.0.1,則scrapyd服務(wù)就只能本地使用啦。
4. scrapy項目A 文件配置
初始項目A結(jié)構(gòu)如下:
|- stcn
|- stcn
|- spider
|- __init__.py
|- ...
|- __init__.py
|- items.py
|- middlewares.py
|- pipelines.py
|- setting.py
|- scrapy.cfg
|- setup.py
1) scrapy.cfg
項目stcn下有一個 scrapy.cfg 的設(shè)置文件。取消url所在行注釋,并將地址修改為你的scrapyd服務(wù)器的IP地址即可。所以我的url改為了scrapyd服務(wù)器的IP地址。
# Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# https://scrapyd.readthedocs.io/en/latest/deploy.html
[settings]
default = stcn.settings
[deploy]
url = http://192.168.1.105:6800/
project = stcn
2) scrapyd-deploy
在你的python目錄下查找名為 scrapyd-deploy 的文件(我的在\Python37\Lib\site-packages\scrapyd-client目錄下),并復制至項目stcn內(nèi)。
最終項目A結(jié)構(gòu)如下:
|- stcn
|- stcn
|- spider
|- __init__.py
|- ...
|- __init__.py
|- items.py
|- middlewares.py
|- pipelines.py
|- setting.py
|- scrapy.cfg
|- scrapyd-deploy
|- setup.py
5. 開始使用
1. 在瀏覽器輸入你的scrapyd服務(wù)器網(wǎng)址


2. 在項目stcn目錄下輸入命令
python scrapyd-deploy

3. 在項目stcn目錄下輸入命令:
curl http://192.168.1.105:6800/schedule.json -d project=stcn -d spider=company
其中project填的是項目名稱,spider填的是爬蟲的名稱。(這里服務(wù)器漏裝了一個python庫,所以第一次執(zhí)行時保存到數(shù)據(jù)庫的操作失敗了,你們輸一次就夠了...)

4. 然后就成功啦



網(wǎng)頁里還有一個logs列表,可以查看執(zhí)行完成的爬蟲的log,我這里就不貼圖啦。
好像有點繞,但實際上上傳scrapy項目和提供scrapy服務(wù)的是兩臺不同的電腦,所以看起來才這么繞吧...scrapyd的其他使用,我還需要慢慢摸索,以后更不更隨緣吧,希望這篇教程能幫到大家。也歡迎大家指教指教~