成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于Celery的分布式爬蟲管理平臺: Crawlab

legendaryedu / 3317人閱讀

摘要:基于的爬蟲分布式爬蟲管理平臺,支持多種編程語言以及多種爬蟲框架。后臺程序會自動發(fā)現(xiàn)這些爬蟲項目并儲存到數(shù)據(jù)庫中。每一個節(jié)點需要啟動應(yīng)用來支持爬蟲部署。任務(wù)將以環(huán)境變量的形式存在于爬蟲任務(wù)運行的進程中,并以此來關(guān)聯(lián)抓取數(shù)據(jù)。

Crawlab

基于Celery的爬蟲分布式爬蟲管理平臺,支持多種編程語言以及多種爬蟲框架。

Github: https://github.com/tikazyq/crawlab

截圖 首頁

爬蟲列表

爬蟲詳情 - 概覽

任務(wù)詳情 - 抓取結(jié)果

架構(gòu)

Crawlab的架構(gòu)跟Celery非常相似,但是加入了包括前端、爬蟲、Flower在內(nèi)的額外模塊,以支持爬蟲管理的功能。

節(jié)點

節(jié)點其實就是Celery中的Worker。一個節(jié)點運行時會連接到一個任務(wù)隊列(例如Redis)來接收和運行任務(wù)。所有爬蟲需要在運行時被部署到節(jié)點上,用戶在部署前需要定義節(jié)點的IP地址和端口。

爬蟲
自動發(fā)現(xiàn)

config.py文件中,修改變量PROJECT_SOURCE_FILE_FOLDER作為爬蟲項目所在的目錄。Crawlab后臺程序會自動發(fā)現(xiàn)這些爬蟲項目并儲存到數(shù)據(jù)庫中。是不是很方便?

部署爬蟲

所有爬蟲需要在抓取前被部署當(dāng)相應(yīng)當(dāng)節(jié)點中。在"爬蟲詳情"頁面點擊"Deploy"按鈕,爬蟲將被部署到所有有效到節(jié)點中。

運行爬蟲

部署爬蟲之后,你可以在"爬蟲詳情"頁面點擊"Run"按鈕來啟動爬蟲。一個爬蟲任務(wù)將被觸發(fā),你可以在任務(wù)列表頁面中看到這個任務(wù)。

任務(wù)

任務(wù)被觸發(fā)并被節(jié)點執(zhí)行。用戶可以在任務(wù)詳情頁面中看到任務(wù)到狀態(tài)、日志和抓取結(jié)果。

后臺應(yīng)用

這是一個Flask應(yīng)用,提供了必要的API來支持常規(guī)操作,例如CRUD、爬蟲部署以及任務(wù)運行。每一個節(jié)點需要啟動Flask應(yīng)用來支持爬蟲部署。運行python manage.py apppython ./bin/run_app.py來啟動應(yīng)用。

中間者

中間者跟Celery中定義的一樣,作為運行異步任務(wù)的隊列。

前端

前端其實就是一個基于Vue-Element-Admin的單頁應(yīng)用。其中重用了很多Element-UI的控件來支持相應(yīng)的展示。

數(shù)據(jù)關(guān)聯(lián)

任務(wù)是利用python的subprocess模塊中的Popen來實現(xiàn)的。任務(wù)ID將以環(huán)境變量CRAWLAB_TASK_ID的形式存在于爬蟲任務(wù)運行的進程中,并以此來關(guān)聯(lián)抓取數(shù)據(jù)。

在你的爬蟲程序中,你需要將CRAWLAB_TASK_ID的值以task_id作為可以存入數(shù)據(jù)庫中。這樣Crawlab就直到如何將爬蟲任務(wù)與抓取數(shù)據(jù)關(guān)聯(lián)起來了。當(dāng)前,Crawlab只支持MongoDB。

import os
from pymongo import MongoClient

MONGO_HOST = "192.168.99.100"
MONGO_PORT = 27017
MONGO_DB = "crawlab_test"

# scrapy example in the pipeline
class JuejinPipeline(object):
    mongo = MongoClient(host=MONGO_HOST, port=MONGO_PORT)
    db = mongo[MONGO_DB]
    col_name = os.environ.get("CRAWLAB_COLLECTION")
    if not col_name:
        col_name = "test"
    col = db[col_name]

    def process_item(self, item, spider):
        item["task_id"] = os.environ.get("CRAWLAB_TASK_ID")
        self.col.save(item)
        return item
與其他框架比較

限制以及有一些爬蟲管理框架了,因此為啥還要用Crawlab?

因為很多現(xiàn)有當(dāng)平臺都依賴于Scrapyd,限制了爬蟲的編程語言以及框架,爬蟲工程師只能用scrapy和python。當(dāng)然,scrapy是非常優(yōu)秀的爬蟲框架,但是它不能做一切事情。

Crawlab使用起來很方便,也很通用,可以適用于幾乎任何主流語言和框架。它還有一個精美的前端界面,讓用戶可以方便的管理和運行爬蟲。

框架 類型 分布式 前端 依賴于Scrapyd
Crawlab 管理平臺 Y Y N
Gerapy 管理平臺 Y Y Y
SpiderKeeper 管理平臺 Y Y Y
ScrapydWeb 管理平臺 Y Y Y
Scrapyd 網(wǎng)絡(luò)服務(wù) Y N N/A
TODOs
后端

[ ] 文件管理

[ ] MySQL數(shù)據(jù)庫支持

[ ] 重跑任務(wù)

[ ] 節(jié)點監(jiān)控

[ ] 更多爬蟲例子

前端

[ ] 任務(wù)數(shù)據(jù)統(tǒng)計

[ ] 表格過濾

[ ] 多語言支持 (中文)

[ ] 登錄和用戶管理

[ ] 全局搜索

歡迎大家來加入Crawlab開發(fā)交流群

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43303.html

相關(guān)文章

  • 手把手教你如何用Crawlab構(gòu)建技術(shù)文章聚合平臺(一)

    摘要:本文將介紹如何使用和抓取主流的技術(shù)博客文章,然后用搭建一個小型的技術(shù)文章聚合平臺。是谷歌開源的基于和的自動化測試工具,可以很方便的讓程序模擬用戶的操作,對瀏覽器進行程序化控制。相對于,是新的開源項目,而且是谷歌開發(fā),可以使用很多新的特性。 背景 說到爬蟲,大多數(shù)程序員想到的是scrapy這樣受人歡迎的框架。scrapy的確不錯,而且有很強大的生態(tài)圈,有g(shù)erapy等優(yōu)秀的可視化界面。但...

    LinkedME2016 評論0 收藏0
  • 手把手教你如何用Crawlab構(gòu)建技術(shù)文章聚合平臺(一)

    摘要:本文將介紹如何使用和抓取主流的技術(shù)博客文章,然后用搭建一個小型的技術(shù)文章聚合平臺。是谷歌開源的基于和的自動化測試工具,可以很方便的讓程序模擬用戶的操作,對瀏覽器進行程序化控制。相對于,是新的開源項目,而且是谷歌開發(fā),可以使用很多新的特性。 背景 說到爬蟲,大多數(shù)程序員想到的是scrapy這樣受人歡迎的框架。scrapy的確不錯,而且有很強大的生態(tài)圈,有g(shù)erapy等優(yōu)秀的可視化界面。但...

    Jeffrrey 評論0 收藏0
  • 爬蟲平臺Crawlab v0.2發(fā)布

    摘要:是一個專注于爬蟲的集成了爬蟲管理任務(wù)調(diào)度任務(wù)監(jiān)控數(shù)據(jù)分析等模塊的分布式爬蟲管理平臺,非常適合對爬蟲管理爬蟲工程化有要求的開發(fā)者及企業(yè)。從目前開源的框架來看,大部分爬蟲平臺是以為核心,因此只能支持框架的爬蟲,而不僅支持,還支持其他框架的爬蟲。 showImg(https://segmentfault.com/img/remote/1460000019143107?w=2559&h=112...

    yiliang 評論0 收藏0
  • [爬蟲手記] 我是如何在3分鐘內(nèi)開發(fā)完一個爬蟲

    摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。遵守協(xié)議這個默認是開啟的。的可配置爬蟲降低了爬蟲的開發(fā)時間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。 前言 開發(fā)爬蟲是一件有趣的事情。寫一個程序,對感興趣的目標(biāo)網(wǎng)站發(fā)起HTTP請求,獲取HTML,解析HTML,提取數(shù)據(jù),將數(shù)據(jù)保存到數(shù)據(jù)庫或者存為CSV、JSON等格式,再...

    sushi 評論0 收藏0
  • [爬蟲手記] 我是如何在3分鐘內(nèi)開發(fā)完一個爬蟲

    摘要:前言開發(fā)爬蟲是一件有趣的事情。的可配置爬蟲是基于的,因此天生是支持并發(fā)的。的可配置爬蟲降低了爬蟲的開發(fā)時間,增加了爬蟲開發(fā)效率,完善了工程化水平,將爬蟲工程師從日常的繁瑣配置工作中解放出來。前言 開發(fā)爬蟲是一件有趣的事情。寫一個程序,對感興趣的目標(biāo)網(wǎng)站發(fā)起HTTP請求,獲取HTML,解析HTML,提取數(shù)據(jù),將數(shù)據(jù)保存到數(shù)據(jù)庫或者存為CSV、JSON等格式,再用自己熟悉的語言例如Python對...

    YorkChen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<