celery在python爬蟲(chóng)中定時(shí)操作實(shí)例講解
使用定時(shí)功能對(duì)于我們想要快速獲取某個(gè)數(shù)據(jù)來(lái)說(shuō),是一個(gè)非常好的方法。這樣我們就不用苦苦守在電腦屏幕前,只為蹲到某個(gè)想要的東西。在之前我們已經(jīng)講過(guò)time函數(shù)進(jìn)行定時(shí)操作,這算是time函數(shù)的比較基礎(chǔ)的一個(gè)用法了。其實(shí)定時(shí)功能同樣可以用celery實(shí)現(xiàn),具體的方法我們往下看:
爬蟲(chóng)由于其特殊性,可能需要定時(shí)做增量抓取,也可能需要定時(shí)做模擬登陸,以防止cookie過(guò)期,而celery恰恰就實(shí)現(xiàn)了定時(shí)任務(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(
# 配置所在時(shí)區(qū)
CELERY_TIMEZONE='Asia/Shanghai',
CELERY_ENABLE_UTC=True,
# 官網(wǎng)推薦消息序列化方式為json
CELERY_ACCEPT_CONTENT=['json'],
CELERY_TASK_SERIALIZER='json',
CELERY_RESULT_SERIALIZER='json',
# 配置定時(shí)任務(wù)
CELERYBEAT_SCHEDULE={
'my_task': {
'task': 'tasks.add', # tasks.py模塊下的add方法
'schedule': 60, # 每隔60運(yùn)行一次
'args': (23, 12),
}
}
)
@app.task
def add(x, y):
return x + y
然后先通過(guò)`ctrl+c`停掉前一個(gè)worker,因?yàn)槲覀兇a改了,需要重啟worker才會(huì)生效。我們?cè)俅我訿celery -A tasks worker -l info`這個(gè)命令開(kāi)啟worker。
這個(gè)時(shí)候我們只是開(kāi)啟了worker,如果要讓worker執(zhí)行任務(wù),那么還需要通過(guò)beat給它定時(shí)發(fā)送,我們?cè)匍_(kāi)一個(gè)命令行,切換到項(xiàng)目根目錄,通過(guò)
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...
這樣就表示定時(shí)任務(wù)已經(jīng)開(kāi)始運(yùn)行了。
到此這篇關(guān)于celery在python爬蟲(chóng)中定時(shí)操作實(shí)例講解的文章就介紹到這了,更多相關(guān)celery如何在python爬蟲(chóng)中進(jìn)行定時(shí)操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)迪杰斯特拉和弗洛伊德算法
這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)迪杰斯特拉和弗洛伊德算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎
這篇文章主要介紹了基于Python實(shí)現(xiàn)的通用小規(guī)模搜索引擎,文中代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-01-01
如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見(jiàn)的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對(duì)齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
解決Python字典寫(xiě)入文件出行首行有空格的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決Python字典寫(xiě)入文件出行首行有空格的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
python并發(fā)執(zhí)行request請(qǐng)求的示例
這篇文章主要介紹了python并發(fā)執(zhí)行request請(qǐng)求,我將為我們展示使用concurrent.futures.ThreadPoolExecutor和requests庫(kù)并發(fā)執(zhí)行HTTP請(qǐng)求的示例,需要的朋友可以參考下2024-06-06
python定時(shí)任務(wù)apscheduler的詳細(xì)使用教程
APScheduler的全稱是Advanced?Python?Scheduler,它是一個(gè)輕量級(jí)的?Python定時(shí)任務(wù)調(diào)度框架,下面這篇文章主要給大家介紹了關(guān)于python定時(shí)任務(wù)apscheduler的詳細(xì)使用教程,需要的朋友可以參考下2022-02-02
Python word2vec訓(xùn)練詞向量實(shí)例分析講解
這篇文章主要介紹了Python word2vec訓(xùn)練詞向量實(shí)例分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
Python實(shí)現(xiàn)TCP協(xié)議下的端口映射功能的腳本程序示例
端口映射一個(gè)最基本的運(yùn)作形態(tài)就是通過(guò)一個(gè)中間端口將一個(gè)端口發(fā)送的數(shù)據(jù)全部轉(zhuǎn)給另一個(gè)端口,well,這里我們就來(lái)看一下Python實(shí)現(xiàn)TCP協(xié)議下的端口映射功能的腳本程序示例2016-06-06

