【scrapyd】安裝及其使用

編寫日期: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的其他使用,我還需要慢慢摸索,以后更不更隨緣吧,希望這篇教程能幫到大家。也歡迎大家指教指教~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,945評論 2 59
  • 第一部分 Python基礎(chǔ)篇(80題) 1、為什么學習Python? Python相對于其他編程語言有很多優(yōu)點: ...
    清清子衿木子水心閱讀 1,825評論 0 1
  • 算法的時間復雜度 算法時間復雜度用來度量算法執(zhí)行時間的多少,用T(n)=O(f(n)),其中n為問題規(guī)模,也就是問...
    鄒霉霉閱讀 309評論 0 0

友情鏈接更多精彩內(nèi)容