celery在python爬蟲中定時操作實例講解
使用定時功能對于我們想要快速獲取某個數(shù)據(jù)來說,是一個非常好的方法。這樣我們就不用苦苦守在電腦屏幕前,只為蹲到某個想要的東西。在之前我們已經(jīng)講過time函數(shù)進行定時操作,這算是time函數(shù)的比較基礎(chǔ)的一個用法了。其實定時功能同樣可以用celery實現(xiàn),具體的方法我們往下看:
爬蟲由于其特殊性,可能需要定時做增量抓取,也可能需要定時做模擬登陸,以防止cookie過期,而celery恰恰就實現(xiàn)了定時任務(wù)的功能。在上述基礎(chǔ)上,我們將`tasks.py`文件改成如下內(nèi)容
from celery import Celery
app = Celery('add_tasks', broker='redis:''//223.129.0.190:6379/2', backend='redis:''//223.129.0.190:6379/3')
app.conf.update(
# 配置所在時區(qū)
CELERY_TIMEZONE='Asia/Shanghai',
CELERY_ENABLE_UTC=True,
# 官網(wǎng)推薦消息序列化方式為json
CELERY_ACCEPT_CONTENT=['json'],
CELERY_TASK_SERIALIZER='json',
CELERY_RESULT_SERIALIZER='json',
# 配置定時任務(wù)
CELERYBEAT_SCHEDULE={
'my_task': {
'task': 'tasks.add', # tasks.py模塊下的add方法
'schedule': 60, # 每隔60運行一次
'args': (23, 12),
}
}
)
@app.task
def add(x, y):
return x + y
然后先通過`ctrl+c`停掉前一個worker,因為我們代碼改了,需要重啟worker才會生效。我們再次以`celery -A tasks worker -l info`這個命令開啟worker。
這個時候我們只是開啟了worker,如果要讓worker執(zhí)行任務(wù),那么還需要通過beat給它定時發(fā)送,我們再開一個命令行,切換到項目根目錄,通過
celery beat -A tasks -l info celery beat v3.1.25 (Cipater) is starting. __ - ... __ - _ Configuration -> . broker -> redis://223.129.0.190:6379/2 . loader -> celery.loaders.app.AppLoader . scheduler -> celery.beat.PersistentScheduler . db -> celerybeat-schedule . logfile -> [stderr]@%INFO . maxinterval -> now (0s) [2017-05-19 15:56:57,125: INFO/MainProcess] beat: Starting...
這樣就表示定時任務(wù)已經(jīng)開始運行了。
到此這篇關(guān)于celery在python爬蟲中定時操作實例講解的文章就介紹到這了,更多相關(guān)celery如何在python爬蟲中進行定時操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實現(xiàn)的通用小規(guī)模搜索引擎
這篇文章主要介紹了基于Python實現(xiàn)的通用小規(guī)模搜索引擎,文中代碼示例和圖文結(jié)合的方式講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-01-01
如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
python并發(fā)執(zhí)行request請求的示例
這篇文章主要介紹了python并發(fā)執(zhí)行request請求,我將為我們展示使用concurrent.futures.ThreadPoolExecutor和requests庫并發(fā)執(zhí)行HTTP請求的示例,需要的朋友可以參考下2024-06-06
python定時任務(wù)apscheduler的詳細使用教程
APScheduler的全稱是Advanced?Python?Scheduler,它是一個輕量級的?Python定時任務(wù)調(diào)度框架,下面這篇文章主要給大家介紹了關(guān)于python定時任務(wù)apscheduler的詳細使用教程,需要的朋友可以參考下2022-02-02
Python word2vec訓(xùn)練詞向量實例分析講解
這篇文章主要介紹了Python word2vec訓(xùn)練詞向量實例分析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12
Python實現(xiàn)TCP協(xié)議下的端口映射功能的腳本程序示例
端口映射一個最基本的運作形態(tài)就是通過一個中間端口將一個端口發(fā)送的數(shù)據(jù)全部轉(zhuǎn)給另一個端口,well,這里我們就來看一下Python實現(xiàn)TCP協(xié)議下的端口映射功能的腳本程序示例2016-06-06

