celery在python爬蟲中定時(shí)操作實(shí)例講解
使用定時(shí)功能對于我們想要快速獲取某個(gè)數(shù)據(jù)來說,是一個(gè)非常好的方法。這樣我們就不用苦苦守在電腦屏幕前,只為蹲到某個(gè)想要的東西。在之前我們已經(jīng)講過time函數(shù)進(jìn)行定時(shí)操作,這算是time函數(shù)的比較基礎(chǔ)的一個(gè)用法了。其實(shí)定時(shí)功能同樣可以用celery實(shí)現(xiàn),具體的方法我們往下看:
爬蟲由于其特殊性,可能需要定時(shí)做增量抓取,也可能需要定時(shí)做模擬登陸,以防止cookie過期,而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
然后先通過`ctrl+c`停掉前一個(gè)worker,因?yàn)槲覀兇a改了,需要重啟worker才會(huì)生效。我們再次以`celery -A tasks worker -l info`這個(gè)命令開啟worker。
這個(gè)時(shí)候我們只是開啟了worker,如果要讓worker執(zhí)行任務(wù),那么還需要通過beat給它定時(shí)發(fā)送,我們再開一個(gè)命令行,切換到項(xiàng)目根目錄,通過
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)開始運(yùn)行了。
到此這篇關(guān)于celery在python爬蟲中定時(shí)操作實(shí)例講解的文章就介紹到這了,更多相關(guān)celery如何在python爬蟲中進(jìn)行定時(shí)操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
全面解析python當(dāng)前路徑和導(dǎo)包路徑問題
這篇文章主要為大家介紹了python當(dāng)前路徑和導(dǎo)包路徑問題的全面解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Python編碼規(guī)范擺脫P(yáng)ython編碼噩夢
Python 中編碼問題,一直是很多 Python 開發(fā)者的噩夢,盡管你是工作多年的 Python 開發(fā)者,也肯定會(huì)經(jīng)常遇到令人神煩的編碼問題,收藏這篇文章以后你可以不用再Google2021-10-10Python3實(shí)現(xiàn)從指定路徑查找文件的方法
這篇文章主要介紹了Python3實(shí)現(xiàn)從指定路徑查找文件的方法,涉及Python目錄與文件的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05Selenium webdriver添加cookie實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Selenium webdriver添加cookie實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08python實(shí)現(xiàn)的登陸Discuz!論壇通用代碼分享
這篇文章主要介紹了python實(shí)現(xiàn)的登陸Discuz!論壇通用代碼分享,需要的朋友可以參考下2014-07-07使用實(shí)現(xiàn)pandas讀取csv文件指定的前幾行
下面小編就為大家分享一篇使用實(shí)現(xiàn)pandas讀取csv文件指定的前幾行,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04VSCode安裝Django插件后實(shí)現(xiàn)html語法提示的方法步驟
Vscode是微軟推出的一款優(yōu)秀的ide開發(fā)工具,界面簡潔美觀、默認(rèn)支持中文,擁有豐富的插件,支持Windows,OS X和Linux,下面這篇文章主要給大家介紹了關(guān)于VSCode安裝Django插件后實(shí)現(xiàn)html語法提示的方法步驟,需要的朋友可以參考下2022-08-08