淺析python實(shí)現(xiàn)scrapy定時(shí)執(zhí)行爬蟲(chóng)
項(xiàng)目需要程序能夠放在超算中心定時(shí)運(yùn)行,于是針對(duì)scrapy寫(xiě)了一個(gè)定時(shí)爬蟲(chóng)的程序main.py ,直接放在scrapy的存儲(chǔ)代碼的目錄中就能設(shè)定時(shí)間定時(shí)多次執(zhí)行。
最簡(jiǎn)單的方法:直接使用Timer類
import time import os while True: os.system("scrapy crawl News") time.sleep(86400) #每隔一天運(yùn)行一次 24*60*60=86400s或者,使用標(biāo)準(zhǔn)庫(kù)的sched模塊 import sched #初始化sched模塊的scheduler類 #第一個(gè)參數(shù)是一個(gè)可以返回時(shí)間戳的函數(shù),第二個(gè)參數(shù)可以在定時(shí)未到達(dá)之前阻塞。 schedule = sched.scheduler ( time.time, time.sleep ) #被周期性調(diào)度觸發(fā)的函數(shù) def func(): os.system("scrapy crawl News") def perform1(inc): schedule.enter(inc,0,perform1,(inc,)) func() # 需要周期執(zhí)行的函數(shù) def mymain(): schedule.enter(0,0,perform1,(86400,)) if __name__=="__main__": mymain() schedule.run() # 開(kāi)始運(yùn)行,直到計(jì)劃時(shí)間隊(duì)列變成空為止關(guān)于cmd的實(shí)現(xiàn)方法,本人在單次執(zhí)行爬蟲(chóng)程序時(shí)使用的是 cmdline.execute("scrapy crawl News".split())但可能因?yàn)閏mdline是scrapy模塊中自帶的,所以定時(shí)執(zhí)行時(shí)只能執(zhí)行一次就退出了。
小伙伴有種方法是使用
import subprocess subprocess.Popen("scrapy crawl News")
她的程序運(yùn)行正常可以定時(shí)多次執(zhí)行,而我的卻直接退出了,改為
from subprocess import Popen subprocess.Popen("scrapy crawl News")
才正常,不知道為什么會(huì)這樣,如果有大神可以解釋原因還請(qǐng)指點(diǎn)。
反正
os.system、subprocess.Popen
都是pythoncmd的實(shí)現(xiàn)方法,可以根據(jù)需要選擇使用。
總結(jié)
以上所述是小編給大家介紹的python實(shí)現(xiàn)scrapy定時(shí)執(zhí)行爬蟲(chóng),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- Python爬蟲(chóng)框架Scrapy安裝使用步驟
- 零基礎(chǔ)寫(xiě)python爬蟲(chóng)之使用Scrapy框架編寫(xiě)爬蟲(chóng)
- 使用scrapy實(shí)現(xiàn)爬網(wǎng)站例子和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)(蜘蛛)的步驟
- scrapy爬蟲(chóng)完整實(shí)例
- 深入剖析Python的爬蟲(chóng)框架Scrapy的結(jié)構(gòu)與運(yùn)作流程
- 講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法
- Python使用Scrapy爬蟲(chóng)框架全站爬取圖片并保存本地的實(shí)現(xiàn)代碼
- Python的Scrapy爬蟲(chóng)框架簡(jiǎn)單學(xué)習(xí)筆記
- 實(shí)踐Python的爬蟲(chóng)框架Scrapy來(lái)抓取豆瓣電影TOP250
- 使用Python的Scrapy框架編寫(xiě)web爬蟲(chóng)的簡(jiǎn)單示例
- python爬蟲(chóng)框架scrapy實(shí)戰(zhàn)之爬取京東商城進(jìn)階篇
- Scrapy爬蟲(chóng)多線程導(dǎo)致抓取錯(cuò)亂的問(wèn)題解決
相關(guān)文章
簡(jiǎn)單介紹利用TK在Python下進(jìn)行GUI編程的教程
這篇文章主要介紹了簡(jiǎn)單介紹利用TK在Python下進(jìn)行GUI編程的教程,本文來(lái)自于IBM官方開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04Python實(shí)現(xiàn)輕松合并doc為txt的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python編程語(yǔ)言和wxPython模塊,打開(kāi)指定文件夾中的DOC文檔,并將它們的內(nèi)容合并成一個(gè)便捷的TXT文檔,需要的可以參考下2024-03-03python3.6之xlwt如何設(shè)置單元格對(duì)齊方式
這篇文章主要介紹了python3.6之xlwt如何設(shè)置單元格對(duì)齊方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Python pytest.main()運(yùn)行測(cè)試用例
這篇文章主要介紹了Python pytest.main()運(yùn)行測(cè)試用例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12Python利用Flask-Mail實(shí)現(xiàn)發(fā)送郵件詳解
Flask?的擴(kuò)展包?Flask?-?Mail?通過(guò)包裝了?Python?內(nèi)置的smtplib包,可以用在?Flask?程序中發(fā)送郵件。本文將利用這特性實(shí)現(xiàn)郵件發(fā)送功能,感興趣的可以了解一下2022-08-08python實(shí)現(xiàn)靜態(tài)服務(wù)器
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)靜態(tài)服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Python文件打開(kāi)讀取寫(xiě)入方法實(shí)用案例
我們?cè)诠ぷ髦薪?jīng)常需要用python對(duì)文本文件進(jìn)行內(nèi)容的讀取和寫(xiě)入,下面這篇文章主要給大家介紹了關(guān)于Python文件打開(kāi)讀取寫(xiě)入方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05python 常見(jiàn)字符串與函數(shù)的用法詳解
這篇文章主要介紹了python 常見(jiàn)字符串與函數(shù)的用法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11